diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | share/trashman/trashman/functions | 12 | ||||
-rwxr-xr-x | trashman | 2 |
3 files changed, 12 insertions, 4 deletions
@@ -26,7 +26,7 @@ by this one: trashman install <package> -Instead of being just a shorthand, `trashman` packages try as best as possible +Instead of being just a shorthand, `trashman` packages can try as best as possible not to fetch keys and scripts from remote locations without some basic checks. So if you have to add files into `/etc/apt/trusted.gpg.d`, `trashman` will provide those keys or fingerprints instead of donwloading it from somewhere, in which case it could diff --git a/share/trashman/trashman/functions b/share/trashman/trashman/functions index 61102e9..48700cd 100644 --- a/share/trashman/trashman/functions +++ b/share/trashman/trashman/functions @@ -203,6 +203,7 @@ trashman_check_exit_status() { # Check for superuser privileges trashman_check_root() { local action="$1" + local package="$2" if [ -z "$action" ]; then return @@ -213,8 +214,15 @@ trashman_check_root() { fi if [ "`whoami`" != "root" ]; then - trashman_echo "Action $action requires root privileges" - exit 1 + if which sudo &> /dev/null; then + # Try to invoke it with sudo + trashman_echo "You're running as a regular user, trying to re-invoke the command using sudo..." + sudo $PROGRAM $action $package + exit $? + else + trashman_echo "Action $action requires root privileges" + exit 1 + fi fi } @@ -91,7 +91,7 @@ else # Checking for privileges if [ "$BASENAME" = "trashman" ]; then - trashman_check_root $ACTION + trashman_check_root $ACTION $package else trashman_check_sudo fi |