From 96b245878b3e400bda661fd06b8140cac8f4475b Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2024 11:20:37 +0200 Subject: [PATCH 01/23] Ignore internal debian packaging files --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index 1377554..00ec909 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,7 @@ *.swp +debian/.debhelper/ +debian/debhelper-build-stamp +debian/files +debian/*.log +debian/*.substvars +debian/screen-save/ From c55905add46042038f0881f60e4703c32650aa2e Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2024 11:22:05 +0200 Subject: [PATCH 02/23] Initiate debian packaging * Provide all minimalist files to build a debian package * Set a newer version to prevent conflict with previous commits unversionned --- debian/changelog | 12 ++++++++++++ debian/compat | 1 + debian/control | 17 +++++++++++++++++ debian/copyright | 1 + debian/install | 1 + debian/rules | 5 +++++ 6 files changed, 37 insertions(+) create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 120000 debian/copyright create mode 100644 debian/install create mode 100755 debian/rules diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..5d82b44 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,12 @@ +screen-save (0.0.2) bookworm; urgency=medium + + * Package project + + -- Camille Lafitte Mon, 15 Jul 2024 08:06:00 +0200 + +screen-save (0.0.1) UNRELEASED; urgency=medium + + * A version to provide a past history + * Was be never pacakged + + -- Simon Walz Thu, 1 Jun 2023 12:25:00 +0200 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +10 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..21b9ea5 --- /dev/null +++ b/debian/control @@ -0,0 +1,17 @@ +Source: screen-save +Section: admin +Priority: optional +Maintainer: Camille Lafitte +Build-Depends: debhelper (>= 8) +Standards-Version: 3.9.8 + +Package: screen-save +Priority: optional +Section: admin +Architecture: all +Depends: screen +Description: A tool to make screen sessions persistent = survive system reboot. + . + This package is an optional module to complete screen feature + . + More information at https://github.com/simonwalz/screen-save diff --git a/debian/copyright b/debian/copyright new file mode 120000 index 0000000..ea5b606 --- /dev/null +++ b/debian/copyright @@ -0,0 +1 @@ +../LICENSE \ No newline at end of file diff --git a/debian/install b/debian/install new file mode 100644 index 0000000..b961d05 --- /dev/null +++ b/debian/install @@ -0,0 +1 @@ +src/* . diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..ed58acc --- /dev/null +++ b/debian/rules @@ -0,0 +1,5 @@ +#!/usr/bin/make -f +#export DH_VERBOSE = 1 + +%: + dh $@ From 740ef8d9f263a925af15bc47f6b45ddee3edf806 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2024 13:20:55 +0200 Subject: [PATCH 03/23] Save and auto start all screen sessions * Save all 5' all active sessions * Restore saved sessions on boot --- debian/cron.d | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 debian/cron.d diff --git a/debian/cron.d b/debian/cron.d new file mode 100644 index 0000000..204d379 --- /dev/null +++ b/debian/cron.d @@ -0,0 +1,2 @@ +@reboot /usr/bin/screen-auto-start +*/5 * * * * /usr/bin/screen-save-all-sessions From f5f72dfd77adaf42954fd1f0bb473d7fd520c0a5 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2024 14:01:06 +0200 Subject: [PATCH 04/23] Improve cron process * Prevent error about user permission * Run only if script are executable --- debian/cron.d | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/cron.d b/debian/cron.d index 204d379..41804a8 100644 --- a/debian/cron.d +++ b/debian/cron.d @@ -1,2 +1,3 @@ -@reboot /usr/bin/screen-auto-start -*/5 * * * * /usr/bin/screen-save-all-sessions +##Save and autostart all screen sesssion +@reboot root if [ -x /usr/bin/screen-auto-start ]; then /usr/bin/screen-auto-start; fi +*/5 * * * * root if [ -x /usr/bin/screen-save-all-sessions ]; then /usr/bin/screen-save-all-sessions -d; fi From 32512520e1fc38819af65d791f661a15b0a4f041 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 15:15:01 +0200 Subject: [PATCH 05/23] build on debian branch --- .github/workflows/release.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b8ed2a..10e1aae 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,8 +2,8 @@ name: release on: push: - tags: - - 'v*.*.*' + branch: + - 'issue_10_debian_packaging' jobs: build: @@ -23,7 +23,7 @@ jobs: package: screen-save package_root: .debpkg maintainer: Simon Walz - version: ${{ github.ref }} # refs/tags/v*.*.* + version: v0.0.1 arch: 'all' depends: 'screen' desc: 'A tool to make screen sessions persistent = survive system reboots.' From 85e196ab0d1708f102839666196377d143449239 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 15:41:35 +0200 Subject: [PATCH 06/23] Remove rpm action * Not required in this debug process --- .github/workflows/release.yml | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 10e1aae..c195a6a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,30 +28,12 @@ jobs: depends: 'screen' desc: 'A tool to make screen sessions persistent = survive system reboots.' homepage: 'https://github.com/simonwalz/screen-save' - - name: Create RPM package - uses: jiro4989/build-rpm-action@v2 - with: - summary: 'A tool to make screen sessions persistent = survive system reboots.' - package: screen-save - package_root: .rpmpkg - maintainer: Simon Walz - version: ${{ github.ref }} # refs/tags/v*.*.* - arch: 'x86_64' - desc: 'A tool to make screen sessions persistent = survive system reboots.' - - name: Upload DEB package uses: actions/upload-artifact@v4 with: name: artifact-deb path: | ./*.deb - - name: Upload RPM package - uses: actions/upload-artifact@v4 - with: - name: artifact-rpm - path: | - ./*.rpm - !./*-debuginfo-*.rpm - name: Remove debuginfo file run: | rm *-debuginfo-*.rpm From bc7b73f423b1ec007e0d5a42c6d84bc5554e0fce Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 16:46:54 +0200 Subject: [PATCH 07/23] Change github action to build a deb package * Prefer an other github action to use all dpkg-buildpackage feature * Backport from previous workflow configuration to debian/ structure * Use a basic configuration --- .github/workflows/release.yml | 19 ++++--------------- debian/control | 4 ++-- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c195a6a..ec861ba 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,23 +11,12 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v4 - - - name: Create package structure - run: | - mkdir -p .debpkg/usr/bin .rpmpkg/usr/bin - cp -p screen-* .debpkg/usr/bin/ - cp -p screen-* .rpmpkg/usr/bin/ - name: Create DEB package - uses: jiro4989/build-deb-action@v3 + uses: jtdor/build-deb-action@v1 + env: + DEB_BUILD_OPTIONS: noautodbgsym with: - package: screen-save - package_root: .debpkg - maintainer: Simon Walz - version: v0.0.1 - arch: 'all' - depends: 'screen' - desc: 'A tool to make screen sessions persistent = survive system reboots.' - homepage: 'https://github.com/simonwalz/screen-save' + buildpackage-opts: --build=binary --no-sign - name: Upload DEB package uses: actions/upload-artifact@v4 with: diff --git a/debian/control b/debian/control index 21b9ea5..f0e4855 100644 --- a/debian/control +++ b/debian/control @@ -1,7 +1,7 @@ Source: screen-save Section: admin Priority: optional -Maintainer: Camille Lafitte +Maintainer: Simon Walz Build-Depends: debhelper (>= 8) Standards-Version: 3.9.8 @@ -9,7 +9,7 @@ Package: screen-save Priority: optional Section: admin Architecture: all -Depends: screen +Depends: screen Description: A tool to make screen sessions persistent = survive system reboot. . This package is an optional module to complete screen feature From ec6c601fcdfa053019d355b16025c2157ef9326a Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 17:17:23 +0200 Subject: [PATCH 08/23] Define files list to install --- debian/install | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/install b/debian/install index b961d05..d3ae129 100644 --- a/debian/install +++ b/debian/install @@ -1 +1,3 @@ -src/* . +./screen-auto-start /usr/bin/ +./screen-save /usr/bin/ +./screen-save-all-sessions /usr/bin/ \ No newline at end of file From f7546878dad8f484245c3c281b6e1aa5ff89052f Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 16:50:13 +0200 Subject: [PATCH 09/23] Update changelog to last tag * Since initial PR, some version was generated. It's required to be updated. --- debian/changelog | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5d82b44..e5517f4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,12 +1,5 @@ -screen-save (0.0.2) bookworm; urgency=medium +screen-save (1.2.6) UNRELEASED; urgency=medium - * Package project + * Last version provided from github - -- Camille Lafitte Mon, 15 Jul 2024 08:06:00 +0200 - -screen-save (0.0.1) UNRELEASED; urgency=medium - - * A version to provide a past history - * Was be never pacakged - - -- Simon Walz Thu, 1 Jun 2023 12:25:00 +0200 + -- Simon Walz Sat, 20 Jul 2024 12:25:00 +0200 From acd852c73137a0909b6c2904b36879a0c35ef0ef Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 17:26:33 +0200 Subject: [PATCH 10/23] Upload debian file --- .github/workflows/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ec861ba..2c0360f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,9 +20,8 @@ jobs: - name: Upload DEB package uses: actions/upload-artifact@v4 with: - name: artifact-deb - path: | - ./*.deb + path: debian/artifacts/ + name: debian_package - name: Remove debuginfo file run: | rm *-debuginfo-*.rpm From 44085df36f14b3601cb4f709d6d360841c9d9748 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 17:33:45 +0200 Subject: [PATCH 11/23] Ignore missing file during clean process --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c0360f..322fc39 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: name: debian_package - name: Remove debuginfo file run: | - rm *-debuginfo-*.rpm + rm *-debuginfo-*.rpm || true - name: Release package files uses: softprops/action-gh-release@v2 with: From d6eeab9a59f83305ac90586f28701fc8a444aa31 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 20 Aug 2024 18:03:03 +0200 Subject: [PATCH 12/23] Provide systemd timer version * Complete cron feature with systemd version --- debian/rules | 6 ++++++ debian/screen-auto-start.service | 7 +++++++ debian/screen-auto-start.timer | 8 ++++++++ debian/screen-save-all.service | 7 +++++++ debian/screen-save-all.timer | 8 ++++++++ 5 files changed, 36 insertions(+) create mode 100644 debian/screen-auto-start.service create mode 100644 debian/screen-auto-start.timer create mode 100644 debian/screen-save-all.service create mode 100644 debian/screen-save-all.timer diff --git a/debian/rules b/debian/rules index ed58acc..7b21c29 100755 --- a/debian/rules +++ b/debian/rules @@ -1,5 +1,11 @@ #!/usr/bin/make -f #export DH_VERBOSE = 1 +override_dh_installsystemd: + dh_installsystemd --name=screen-auto-start screen-auto-start.service --no-start + dh_installsystemd --name=screen-auto-start screen-auto-start.timer + dh_installsystemd --name=screen-save-all screen-save-all.service --no-start + dh_installsystemd --name=screen-save-all screen-save-all.timer + %: dh $@ diff --git a/debian/screen-auto-start.service b/debian/screen-auto-start.service new file mode 100644 index 0000000..196f662 --- /dev/null +++ b/debian/screen-auto-start.service @@ -0,0 +1,7 @@ +[Unit] +Description=Auto start all saved screen session + +[Service] +Type=oneshot +ExecStart=/usr/bin/screen-auto-start +User=root diff --git a/debian/screen-auto-start.timer b/debian/screen-auto-start.timer new file mode 100644 index 0000000..ef1724c --- /dev/null +++ b/debian/screen-auto-start.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Auto start all saved session + +[Timer] +OnBootSec=1min + +[Install] +WantedBy=timers.target diff --git a/debian/screen-save-all.service b/debian/screen-save-all.service new file mode 100644 index 0000000..25ce2df --- /dev/null +++ b/debian/screen-save-all.service @@ -0,0 +1,7 @@ +[Unit] +Description=Save all screen session + +[Service] +Type=oneshot +ExecStart=/usr/bin/screen-save-all-sessions -d +User=root diff --git a/debian/screen-save-all.timer b/debian/screen-save-all.timer new file mode 100644 index 0000000..1fb8f39 --- /dev/null +++ b/debian/screen-save-all.timer @@ -0,0 +1,8 @@ +[Unit] +Description=Save all 5' minutes all screen session + +[Timer] +OnCalendar=*:0/5 + +[Install] +WantedBy=timers.target From e64907fe507d078046dba828d2cf2ab9266420cd Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 26 Aug 2024 16:39:20 +0200 Subject: [PATCH 13/23] Increase compat level to support dh_systemd options * Reference : https://manpages.debian.org/testing/debhelper/debhelper-compat-upgrade-checklist.7.en.html --- debian/compat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/compat b/debian/compat index f599e28..48082f7 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -10 +12 From 627de9e2969bac9a8b31938c2b15c199e483312c Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 26 Aug 2024 16:43:10 +0200 Subject: [PATCH 14/23] Rename all systemd unit as required by dh_installsystemd * To prevent conflict unit have scree-save name * autostart is disable, as must be managed by timer --- debian/rules | 6 ++---- ...save-all.service => screen-save.screen-save-all.service} | 0 ...een-save-all.timer => screen-save.screen-save-all.timer} | 0 ...rt.service => screen-save.screen-save-autostart.service} | 0 ...-start.timer => screen-save.screen-save-autostart.timer} | 0 5 files changed, 2 insertions(+), 4 deletions(-) rename debian/{screen-save-all.service => screen-save.screen-save-all.service} (100%) rename debian/{screen-save-all.timer => screen-save.screen-save-all.timer} (100%) rename debian/{screen-auto-start.service => screen-save.screen-save-autostart.service} (100%) rename debian/{screen-auto-start.timer => screen-save.screen-save-autostart.timer} (100%) diff --git a/debian/rules b/debian/rules index 7b21c29..e16c499 100755 --- a/debian/rules +++ b/debian/rules @@ -2,10 +2,8 @@ #export DH_VERBOSE = 1 override_dh_installsystemd: - dh_installsystemd --name=screen-auto-start screen-auto-start.service --no-start - dh_installsystemd --name=screen-auto-start screen-auto-start.timer - dh_installsystemd --name=screen-save-all screen-save-all.service --no-start - dh_installsystemd --name=screen-save-all screen-save-all.timer + dh_installsystemd --name=screen-save-autostart --no-start + dh_installsystemd --name=screen-save-all --no-start %: dh $@ diff --git a/debian/screen-save-all.service b/debian/screen-save.screen-save-all.service similarity index 100% rename from debian/screen-save-all.service rename to debian/screen-save.screen-save-all.service diff --git a/debian/screen-save-all.timer b/debian/screen-save.screen-save-all.timer similarity index 100% rename from debian/screen-save-all.timer rename to debian/screen-save.screen-save-all.timer diff --git a/debian/screen-auto-start.service b/debian/screen-save.screen-save-autostart.service similarity index 100% rename from debian/screen-auto-start.service rename to debian/screen-save.screen-save-autostart.service diff --git a/debian/screen-auto-start.timer b/debian/screen-save.screen-save-autostart.timer similarity index 100% rename from debian/screen-auto-start.timer rename to debian/screen-save.screen-save-autostart.timer From 7f801dfb6c2f9a23bf69f5c2a9e30453d90cd5ce Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 26 Aug 2024 17:56:14 +0200 Subject: [PATCH 15/23] Ignore debhelper files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 00ec909..64e9518 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.swp debian/.debhelper/ +debian/*.debhelper debian/debhelper-build-stamp debian/files debian/*.log From d8759cdc851c2a59f79df1a321387161222dd7a9 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 26 Aug 2024 18:09:11 +0200 Subject: [PATCH 16/23] Save session during shutdown event --- debian/rules | 1 + .../screen-save.screen-save-all-shutdown.service | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 debian/screen-save.screen-save-all-shutdown.service diff --git a/debian/rules b/debian/rules index e16c499..4aa1173 100755 --- a/debian/rules +++ b/debian/rules @@ -4,6 +4,7 @@ override_dh_installsystemd: dh_installsystemd --name=screen-save-autostart --no-start dh_installsystemd --name=screen-save-all --no-start + dh_installsystemd --name=screen-save-all-shutdown %: dh $@ diff --git a/debian/screen-save.screen-save-all-shutdown.service b/debian/screen-save.screen-save-all-shutdown.service new file mode 100644 index 0000000..d0a0262 --- /dev/null +++ b/debian/screen-save.screen-save-all-shutdown.service @@ -0,0 +1,14 @@ +[Unit] +Description=Save all screen session on shutdown event +DefaultDependencies=no +Before=shutdown.target + +[Service] +Type=oneshot +ExecStart=/usr/bin/screen-save-all-sessions -d +User=root +TimeoutStartSec=0 + + +[Install] +WantedBy=shutdown.target \ No newline at end of file From 0e1d3bd5aa70dbadf0703fe7e99b7a0fa18440aa Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Mon, 26 Aug 2024 18:10:19 +0200 Subject: [PATCH 17/23] Save sesion all 15' * Wait at least 15' after startup to run first save * All 15' save all session --- debian/screen-save.screen-save-all.timer | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/screen-save.screen-save-all.timer b/debian/screen-save.screen-save-all.timer index 1fb8f39..4d255aa 100644 --- a/debian/screen-save.screen-save-all.timer +++ b/debian/screen-save.screen-save-all.timer @@ -2,7 +2,8 @@ Description=Save all 5' minutes all screen session [Timer] -OnCalendar=*:0/5 +OnCalendar=*:0/15 +OnStartupSec=15min [Install] WantedBy=timers.target From 70da9a6b763cd4e9d549eb7c51ad7f3dac875a93 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 27 Aug 2024 09:55:16 +0200 Subject: [PATCH 18/23] We want enable timer feature * As is oneShot automatic start is ignored * no-start option disable also timer --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 4aa1173..3eeaca8 100755 --- a/debian/rules +++ b/debian/rules @@ -2,8 +2,8 @@ #export DH_VERBOSE = 1 override_dh_installsystemd: - dh_installsystemd --name=screen-save-autostart --no-start - dh_installsystemd --name=screen-save-all --no-start + dh_installsystemd --name=screen-save-autostart + dh_installsystemd --name=screen-save-all dh_installsystemd --name=screen-save-all-shutdown %: From 925cb8d65eccf9bd1c34b8ed7670815ccbcd401c Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 27 Aug 2024 16:27:42 +0200 Subject: [PATCH 19/23] Don't save session on subdirectory * Override root file , required to be loaded on startup process --- debian/screen-save.screen-save-all.service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/screen-save.screen-save-all.service b/debian/screen-save.screen-save-all.service index 25ce2df..c43c41d 100644 --- a/debian/screen-save.screen-save-all.service +++ b/debian/screen-save.screen-save-all.service @@ -3,5 +3,5 @@ Description=Save all screen session [Service] Type=oneshot -ExecStart=/usr/bin/screen-save-all-sessions -d +ExecStart=/usr/bin/screen-save-all-sessions User=root From 3c92b405f145d4b9ac68247aa1e5fe09f9660e43 Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Wed, 17 Jul 2024 16:42:55 +0200 Subject: [PATCH 20/23] Save all sessions to all user * Search all actives screen socket and save them step by step * Use string manipulation to retrieve user and screen pid --- screen-save-all-sessions | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/screen-save-all-sessions b/screen-save-all-sessions index 1e1223c..d9508de 100755 --- a/screen-save-all-sessions +++ b/screen-save-all-sessions @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # save all my screen sessions # Simon Walz, 2018 @@ -6,6 +6,7 @@ SCRIPTPATH="$(readlink -f 2>/dev/null || perl -MCwd -e 'print Cwd::abs_path shif SCRIPTDIR="$(dirname "${SCRIPTPATH}")" set -e +shopt -s nullglob savedir="$1" @@ -16,23 +17,19 @@ then echo " savedir - save to directory" >&2 exit 2 fi -if test "$savedir" = "-d" -then - savedir="$HOME/.screen-save/$(date +%Y-%m-%d)/" -fi - -if test "$savedir" != "" -then - savedir="${savedir}/" - mkdir -p "${savedir}" -fi -SCREEN_PID=$(screen -ls | \ - grep -oE "^\s+[0-9]+\." | \ - grep -oE "[0-9]+") +screen_sockets=(/var/run/screen/S-*/*); -for i in ${SCREEN_PID} +for screen_info in "${screen_sockets[@]#*S-}"; do - "${SCRIPTDIR}/screen-save" "$i" "$savedir" Date: Mon, 19 Aug 2024 17:41:09 +0200 Subject: [PATCH 21/23] If user is not root, don't search to run su command * In some case (mainly) standard user doesn't act as root permission * In this case we can't use su command --- screen-save-all-sessions | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/screen-save-all-sessions b/screen-save-all-sessions index d9508de..7a29680 100755 --- a/screen-save-all-sessions +++ b/screen-save-all-sessions @@ -24,12 +24,23 @@ for screen_info in "${screen_sockets[@]#*S-}"; do screen_user=$(dirname "${screen_info}") screen_pid=$(basename "${screen_info%.pts*}") + command="" if test "$1" = "-d" then savedir="~${screen_user}/.screen-save/$(date +%Y-%m-%d)/" - su - "${screen_user}" -c "mkdir -p ${savedir}" + command="mkdir -p ${savedir}" + if [ "$EUID" -ne 0 ]; then + eval "${command}" + else + su - "${screen_user}" -c "${command}" + fi + fi + command="${SCRIPTDIR}/screen-save ${screen_pid} ${savedir} Date: Tue, 27 Aug 2024 18:05:10 +0200 Subject: [PATCH 22/23] Autostart at user level * screen autostart is require only one user is enabled --- debian/rules | 5 ++++- ...ervice => screen-save.screen-save-autostart.user.service} | 0 ...rt.timer => screen-save.screen-save-autostart.user.timer} | 0 3 files changed, 4 insertions(+), 1 deletion(-) rename debian/{screen-save.screen-save-autostart.service => screen-save.screen-save-autostart.user.service} (100%) rename debian/{screen-save.screen-save-autostart.timer => screen-save.screen-save-autostart.user.timer} (100%) diff --git a/debian/rules b/debian/rules index 3eeaca8..1fe14a0 100755 --- a/debian/rules +++ b/debian/rules @@ -1,8 +1,11 @@ #!/usr/bin/make -f #export DH_VERBOSE = 1 + +override_dh_installsystemduser: + dh_installsystemduser --name=screen-save-autostart + override_dh_installsystemd: - dh_installsystemd --name=screen-save-autostart dh_installsystemd --name=screen-save-all dh_installsystemd --name=screen-save-all-shutdown diff --git a/debian/screen-save.screen-save-autostart.service b/debian/screen-save.screen-save-autostart.user.service similarity index 100% rename from debian/screen-save.screen-save-autostart.service rename to debian/screen-save.screen-save-autostart.user.service diff --git a/debian/screen-save.screen-save-autostart.timer b/debian/screen-save.screen-save-autostart.user.timer similarity index 100% rename from debian/screen-save.screen-save-autostart.timer rename to debian/screen-save.screen-save-autostart.user.timer From 33a3b9d78d8ba2b204a0324e3df5d91ab061b89e Mon Sep 17 00:00:00 2001 From: Camille Lafitte Date: Tue, 27 Aug 2024 18:09:14 +0200 Subject: [PATCH 23/23] Start once screen autostart * Is executed during user connection, timer is no more required --- debian/screen-save.screen-save-autostart.user.service | 5 +++-- debian/screen-save.screen-save-autostart.user.timer | 8 -------- 2 files changed, 3 insertions(+), 10 deletions(-) delete mode 100644 debian/screen-save.screen-save-autostart.user.timer diff --git a/debian/screen-save.screen-save-autostart.user.service b/debian/screen-save.screen-save-autostart.user.service index 196f662..9a408ff 100644 --- a/debian/screen-save.screen-save-autostart.user.service +++ b/debian/screen-save.screen-save-autostart.user.service @@ -2,6 +2,7 @@ Description=Auto start all saved screen session [Service] -Type=oneshot ExecStart=/usr/bin/screen-auto-start -User=root + +[Install] +WantedBy=default.target \ No newline at end of file diff --git a/debian/screen-save.screen-save-autostart.user.timer b/debian/screen-save.screen-save-autostart.user.timer deleted file mode 100644 index ef1724c..0000000 --- a/debian/screen-save.screen-save-autostart.user.timer +++ /dev/null @@ -1,8 +0,0 @@ -[Unit] -Description=Auto start all saved session - -[Timer] -OnBootSec=1min - -[Install] -WantedBy=timers.target