diff options
Diffstat (limited to 'rolectl')
-rwxr-xr-x | rolectl | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/rolectl b/rolectl deleted file mode 100755 index 3351dbc..0000000 --- a/rolectl +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh - -STOW_DIR=/etc/portage/stow -TARGET=/etc/portage - -stowcmd="stow -d "$STOW_DIR" -t "$TARGET"" - -need_root() { - if test $(id -u) -ne 0; then - printf 'This action requires superuser access.\n' - exit 1 - fi -} - -add() { - need_root - $stowcmd -S "$@" -} - -remove() { - need_root - $stowcmd -D "$@" -} - -flush() { - need_root - list | xargs -- $stowcmd -D -} - -rebuild() { - need_root - list | xargs -- $stowcmd -R -} - -list() { - subcmd="$1" - shift - case $subcmd in - active) list_active;; - all) list_all;; - available) list_available;; - *) list_active;; - esac -} - -list_active() { - # XXX: -r for xargs is a GNU extension - find /etc/portage/ -lname "*stow/*" -print0 2>/dev/null \ - | xargs -r0 readlink \ - | sed 's:.*stow/\([^/]\+\)/.*:\1:' \ - | sort -u -} - -list_all() { - ls -1 "$STOW_DIR" -} - -list_available() { - tmp="$(mktemp)" || exit 1 - list_active > "$tmp" - list_all | comm -13 "$tmp" - - rm -f "$tmp" -} - -cmd="$1" -shift -case $cmd in - add) add "$@";; - flush) flush;; - list) list "$@";; - rebuild) rebuild;; - remove) remove "$@";; - *) list_active;; -esac |