aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Alessi <alessi@robertalessi.net>2019-12-15 15:22:34 +0100
committerRobert Alessi <alessi@robertalessi.net>2019-12-15 15:22:34 +0100
commit867df0cf3d06a789a92c0c7a012393a5e1a89369 (patch)
tree8eb10f177dc499f632809b07a64fa9f33c169dcc
parent5a44e23708e4ac5e83bfea87d8c13cc45a19dc9f (diff)
downloadx200-my-4a026165bd37a9089d1ff5850ca6e36df916a134.tar.gz
optionally use rsnapshot to have incremental backups0.4
-rw-r--r--PKGBUILD9
-rw-r--r--x200-my.confd38
-rw-r--r--x200-my.initd50
3 files changed, 63 insertions, 34 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 8e64cb2..bc17e95 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,21 +1,22 @@
1# Maintainer: Robert Alessi <alessi@robertalessi.net> 1# Maintainer: Robert Alessi <alessi@robertalessi.net>
2 2
3pkgname=x200-my 3pkgname=x200-my
4pkgver=0.3.1 4pkgver=0.4
5pkgrel=1 5pkgrel=1
6pkgdesc="Service to remove whining noise from Thinkpads X200, power off the wifi on shutdown and optionally backup directories." 6pkgdesc="Service to remove whining noise from Thinkpads X200, power off the wifi on shutdown and optionally backup directories."
7arch=(any) 7arch=(any)
8license=(GPL2) 8license=(GPL2)
9url="http://git.robertalessi.net/x200-my" 9url="http://git.robertalessi.net/x200-my"
10depends=('sysvinit' 'networkmanager' 'acpid' 'intel-gpu-tools') 10depends=('sysvinit' 'networkmanager' 'acpid' 'intel-gpu-tools' 'rsync')
11optdepends=('rsnapshot: for incremental backups')
11install=x200-my.install 12install=x200-my.install
12source=('x200-my.initd' 13source=('x200-my.initd'
13 'x200-my.confd' 14 'x200-my.confd'
14 'x200-my-lid.sh' 15 'x200-my-lid.sh'
15 'x200-my-sleep.sh' 16 'x200-my-sleep.sh'
16 'x200-my.sh') 17 'x200-my.sh')
17sha512sums=('96579d18e8639da441b2f0104e453f2ffd34a1c14c77ad08709fc090b168d0030f5074d8c54f116739a4f421286c5d2b64181c66fabd2eee91c371d8aa856395' 18sha512sums=('40d74cc2bce559cc2a08ebcd707279e148d802a5cdeb675cfb5c3abfed453378028a9f78b1be31269d908ad6aacaaaf53b48b13f97d019cdb73156ff92f507b5'
18 'd181ca58ffed55d7d35bd78d2ace09e6c459938f7f7c6cb10feff56de23861feef8b859fde9bb895021efb840a1fe0d3aef7861c7881bb9a793cf9491a2fd17d' 19 'bf6513589b39daad03e4365e61f2026a4cb1801af9d061f38f502c4caa5732d03e529d43f2ec87a4ded952b6a299fdec1c18f302162b0dd28c540299be8987cf'
19 '0dc141f1a26f2cd570d49a05bcc9496ba4c49fde39afad46f5a0783e83c07ec810ca81454a28c3241bcffc62ac31274e2a8d726bbd3c1e91d8cf5315b783c3f8' 20 '0dc141f1a26f2cd570d49a05bcc9496ba4c49fde39afad46f5a0783e83c07ec810ca81454a28c3241bcffc62ac31274e2a8d726bbd3c1e91d8cf5315b783c3f8'
20 '610564aa853c5dbc4e370ec2a4d3b5590e53ed235a1960927c0986a31f6c77d135086b1f5752b56fd511ea4a0294082fc7e98ee2fa7b69b37776a59f45c2ec34' 21 '610564aa853c5dbc4e370ec2a4d3b5590e53ed235a1960927c0986a31f6c77d135086b1f5752b56fd511ea4a0294082fc7e98ee2fa7b69b37776a59f45c2ec34'
21 'cb765075f02b5cd16bcfc31571cf7c31ddcd74ff3aa832df1acd96bd8feb62855c0cf90c31c3e0028180765a51eafc5c74fb1f0406dd9172bdc0f5ec02b39f8c') 22 'cb765075f02b5cd16bcfc31571cf7c31ddcd74ff3aa832df1acd96bd8feb62855c0cf90c31c3e0028180765a51eafc5c74fb1f0406dd9172bdc0f5ec02b39f8c')
diff --git a/x200-my.confd b/x200-my.confd
index bc0024d..35d26bd 100644
--- a/x200-my.confd
+++ b/x200-my.confd
@@ -4,15 +4,32 @@
4 4
5PWMFREQ_RATE="0x8bb7b16dc5b6a" 5PWMFREQ_RATE="0x8bb7b16dc5b6a"
6 6
7# 7##################
8# Backup options 8# Backup options #
9# 9##################
10# Activate autobackup on shutdown (true/false) 10
11# Activate autobackup on shutdown (true/false)?
11conf_autobackup="false" 12conf_autobackup="false"
12# Path to backup directory: 13# Use rsnaphot (true/false)? 'false' means 'use rsync':
13conf_backup_path="/mnt/disk" 14use_rsnapshot="false"
15
16############################
17# rsync/rsnapshot settings #
18############################
19
20# Path to backup directory (note that rsnapshot additionally needs
21# this to be specified as 'snapshot_root' in /etc/rsnapshot.conf):
22conf_backup_path="/mnt/disk/snapshots"
23
24# The following option applies both to rsync and rsnapshot.
14# Control file. This (empty) file must exist in the backup directory: 25# Control file. This (empty) file must exist in the backup directory:
15conf_control_file="dobackup" 26conf_control_file="dobackup"
27
28######################
29# rsync-only setting #
30######################
31
32# rsync only option:
16# Directories to backup: 33# Directories to backup:
17conf_backup_dirs=( 34conf_backup_dirs=(
18 "/etc" 35 "/etc"
@@ -20,3 +37,12 @@ conf_backup_dirs=(
20 "/usr/local" 37 "/usr/local"
21 "/home" 38 "/home"
22) 39)
40
41##########################
42# rsnapshot-only setting #
43##########################
44
45# Use the following line to have specific arguments passed to
46# rsnapshot such as 'daily' or the like. By default, x200-my uses
47# 'alpha', which is already defined in /etc/rsnapshot.conf:
48rsnapshot_args="alpha"
diff --git a/x200-my.initd b/x200-my.initd
index b026b5b..de88ff0 100644
--- a/x200-my.initd
+++ b/x200-my.initd
@@ -14,31 +14,46 @@ extra_started_commands="initbackup"
14autobackup="${conf_autobackup}" 14autobackup="${conf_autobackup}"
15backup_path="${conf_backup_path}" 15backup_path="${conf_backup_path}"
16control_file="${conf_control_file}" 16control_file="${conf_control_file}"
17backup_cmd="/usr/bin/rsync" 17if [ $use_rsnapshot = "true" ]
18backup_args="-aAX --relative --delete --quiet" 18then
19 backup_cmd="/usr/bin/rsnapshot"
20 backup_args="${rsnapshot_args}"
21else
22 backup_cmd="/usr/bin/rsync"
23 backup_args="-aAX --relative --delete --quiet"
24fi
19 25
20do_listofpackages() { 26do_listofpackages() {
21 /usr/bin/pacman -Qqetn > "$backup_path"/pkglist.txt 27 /usr/bin/pacman -Qqetn > "$backup_path"/pkglist.txt
22 /usr/bin/pacman -Qqem > "$backup_path"/foreignpkglist.txt 28 /usr/bin/pacman -Qqem > "$backup_path"/foreignpkglist.txt
23} 29}
24 30
25initbackup() { 31do_backup () {
26 if [ $autobackup = "true" ] 32 if [ $autobackup = "true" ]
27 then 33 then
28 if [ -e "$backup_path"/"$control_file" ] 34 if [ -e "$backup_path"/"$control_file" ]
29 then 35 then
30 do_listofpackages 36 do_listofpackages
31 for dir in "${conf_backup_dirs[@]}" 37 if [ $use_rsnapshot = "true" ]
32 do 38 then
33 if [ -d "$dir" ] 39 $backup_cmd $backup_args
34 then 40 else
35 $backup_cmd $backup_args "$dir" "$backup_path" 41 for dir in "${conf_backup_dirs[@]}"
36 fi 42 do
37 done 43 if [ -d "$dir" ]
44 then
45 $backup_cmd $backup_args "$dir" "$backup_path"
46 fi
47 done
48 fi
38 fi 49 fi
39 fi 50 fi
40} 51}
41 52
53initbackup() {
54 do_backup
55}
56
42start() { 57start() {
43 if [ "${RC_CMD}" = "restart" ]; 58 if [ "${RC_CMD}" = "restart" ];
44 then 59 then
@@ -50,18 +65,5 @@ start() {
50 65
51stop() { 66stop() {
52 /usr/bin/nmcli radio all off 67 /usr/bin/nmcli radio all off
53 if [ $autobackup = "true" ] 68 do_backup
54 then
55 if [ -e "$backup_path"/"$control_file" ]
56 then
57 do_listofpackages
58 for dir in "${conf_backup_dirs[@]}"
59 do
60 if [ -d "$dir" ]
61 then
62 $backup_cmd $backup_args "$dir" "$backup_path"
63 fi
64 done
65 fi
66 fi
67} 69}