summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-08-20 15:35:42 -0300
committerEuAndreh <eu@euandre.org>2024-08-20 15:35:42 -0300
commit3ae145fc3b1dab0df0fe745083b4d38c125b6f10 (patch)
tree1fa54300287465940532f5735229d8d04419a3ab
parentsrc/reconfigure: Use /etc/guix/system.scm over src/guix/system.scm (diff)
downloadsyskeep-3ae145fc3b1dab0df0fe745083b4d38c125b6f10.tar.gz
syskeep-3ae145fc3b1dab0df0fe745083b4d38c125b6f10.tar.xz
src/gc: Simplify code
-rwxr-xr-xsrc/gc93
1 files changed, 9 insertions, 84 deletions
diff --git a/src/gc b/src/gc
index e037f3c..40a7688 100755
--- a/src/gc
+++ b/src/gc
@@ -3,116 +3,41 @@ set -eu
usage() {
cat <<-'EOF'
- Usage:
- gc [TYPE]
- gc -h
+ Usage: gc [ guix | deploy | trash | tmpdir | logs ]
EOF
}
-help() {
- cat <<-'EOF'
-
-
- Options:
- -h, --help show this message
-
- TYPE what to do GC on (default: all):
- - guix
- - deploy
- - trash
- - tmpdir
- - logs
-
-
- GC the server, deleting old, unusable data, in order to free
- disk space system-wide.
-
-
- Examples:
-
- Just run it, for all:
-
- $ gc
-
-
- Cleanup tmpdir:
-
- $ gc tmpdir
- EOF
-}
-
-
-for flag in "$@"; do
- case "$flag" in
- --)
- break
- ;;
- --help)
- usage
- help
- exit
- ;;
- *)
- ;;
- esac
-done
-
-while getopts 'h' flag; do
- case "$flag" in
- h)
- usage
- help
- exit
- ;;
- *)
- usage >&2
- exit 2
- ;;
- esac
-done
-shift $((OPTIND - 1))
-
-
-if [ "$(id -un)" != 'root' ]; then
- printf 'This script must be run as root.\n\n' >&2
- usage >&2
- exit 2
-fi
disk() {
df -h / /mnt/backup/ |
tail -n +2 |
- awk '{ printf "%s\t%s/%s\t%s\n", $4, $3, $2, $6 }'
-}
-
-today() {
- date '+%Y-%m-%d'
+ awk '{ printf "%s\t%s/%s\t%s\n", $4, $3, $2, $6 }' ||:
}
gc_guix() {
- sudo -i guix system delete-generations 1m
- sudo -i guix gc -d 1m
+ guix system delete-generations 1m ||:
+ guix gc -d 1m
}
gc_deploy() {
find /opt/deploy \
! -path /opt/deploy -prune \
-type d \
- -not -name "$(today)*" \
- -exec rm -rvf "{}" ';'
+ -not -name "$(timestamp)*" \
+ -exec rm -rvf "{}" ';' ||:
}
gc_trash() {
- yes | sudo -i trash-empty
+ yes | trash-empty
}
gc_tmpdir() {
- find "${TMPDIR:-/tmp}" -atime +10 -exec rm -vf "{}" ';'
+ find "${TMPDIR:-/tmp}" -atime +10 -exec rm -vf "{}" ';' ||:
}
gc_logs() {
- find /var/log/ci/ -atime +10 -exec rm -vf "{}" ';'
+ find /var/log/ci/ -atime +10 -exec rm -vf "{}" ';' ||:
}