diff options
-rwxr-xr-x[-rw-r--r--] | .travis.yml | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | LICENSE.md | 0 | ||||
-rwxr-xr-x[-rw-r--r--] | README.md | 0 | ||||
-rwxr-xr-x | kiss | 29 |
4 files changed, 21 insertions, 8 deletions
diff --git a/.travis.yml b/.travis.yml index f03f369..f03f369 100644..100755 --- a/.travis.yml +++ b/.travis.yml diff --git a/LICENSE.md b/LICENSE.md index 6867a5b..6867a5b 100644..100755 --- a/LICENSE.md +++ b/LICENSE.md diff --git a/README.md b/README.md index a9ca00b..a9ca00b 100644..100755 --- a/README.md +++ b/README.md @@ -133,7 +133,6 @@ pkg_sources() { # belongs to. This avoid conflicts between two packages having a # source of the same name. mkdir -p "$src_dir/$1" - chmod 1777 "$src_dir/$1" cd "$src_dir/$1" # Find the package's repository files. This needs to keep @@ -424,9 +423,11 @@ pkg_build() { shift # Install any pre-built binaries if they exist. + # This calls 'args' to inherit a root check and call + # to 'sudo' to elevate permissions. [ -f "$bin_dir/$pkg#$version-$release.tar.gz" ] && { - log "[$pkg]: Found pre-built binary." - pkg_install "$bin_dir/$pkg#$version-$release.tar.gz" + log "[$pkg]: Found pre-built binary, installing..." + args i "$bin_dir/$pkg#$version-$release.tar.gz" continue } @@ -892,7 +893,14 @@ args() { i|in|ins|inst|insta|instal|install) shift [ "$1" ] || die "'kiss install' requires an argument." - root_check + + # Rerun the script with 'sudo' if the user isn't root. + # Cheeky but 'sudo' can't be used on shell functions + # themselves. + [ "$(id -u)" != 0 ] && { + sudo KISS_PATH=$KISS_PATH kiss i "$@" + return + } # Create a list of each package's dependencies. for pkg; do @@ -918,7 +926,15 @@ args() { r|re|rem|remo|remov|remove) shift [ "$1" ] || die "'kiss remove' requires an argument." - root_check + + # Rerun the script with 'sudo' if the user isn't root. + # Cheeky but 'sudo' can't be used on shell functions + # themselves. + [ "$(id -u)" != 0 ] && { + sudo KISS_PATH=$KISS_PATH kiss r "$@" + return + } + log "Removing packages..." # Create a list of each package's dependencies. @@ -1063,9 +1079,6 @@ main() { "${bin_dir:=$cac_dir/bin}" \ || die "Couldn't create cache directories." - # Set sticky bit in the "permanent" directories so users can write to it. - chmod 1777 "$cac_dir" "$src_dir" "$bin_dir" - args "$@" } |