aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--share/trashman/trashman/functions12
-rwxr-xr-xtrashman2
3 files changed, 12 insertions, 4 deletions
diff --git a/README.md b/README.md
index cf9abc7..e0fb43a 100644
--- a/README.md
+++ b/README.md
@@ -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
}
diff --git a/trashman b/trashman
index 8ffa0b4..32fa6e2 100755
--- a/trashman
+++ b/trashman
@@ -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