From 491fe0987f73149236d50e64a4ee8a6f1ec2b5ed Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Fri, 28 Oct 2022 20:46:20 -0300 Subject: bin/gc: Support TYPE argument --- bin/gc | 50 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 38 insertions(+), 12 deletions(-) (limited to 'bin/gc') diff --git a/bin/gc b/bin/gc index e09ef13..7502e76 100755 --- a/bin/gc +++ b/bin/gc @@ -4,7 +4,7 @@ set -eu usage() { cat <<-'EOF' Usage: - gc + gc [TYPE] gc -h EOF } @@ -15,15 +15,29 @@ help() { Options: -h, --help show this message + TYPE what to do GC on (default: all): + - guix + - nohup + - trash + - tmpdir + - docker + - email + - vcs + Free disk space system-wide. Examples: - Just run it: + Just run it, for all: $ gc + + + Cleanup tmpdir: + + $ gc tmpdir EOF } @@ -106,17 +120,29 @@ gc_vcs() { } +gc_all() { + set -x + gc_guix + gc_nohup + gc_trash + gc_tmpdir + gc_docker + gc_email + gc_vcs + set +x +} + +TYPE="${1:-all}" +CMD=gc_"$TYPE" +if ! command -v "$CMD" >/dev/null; then + printf 'Invalid TYPE: "%s".\n\n' "$TYPE" >&2 + usage >&2 + exit 2 +fi + + BEFORE="$(disk)" -set -x -gc_guix -gc_nohup -gc_trash -gc_tmpdir -gc_docker -gc_email -gc_vcs -wait -set +x +"$CMD" AFTER="$(disk)" printf 'Disk space:\n' -- cgit v1.2.3