aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkiss32
1 files changed, 29 insertions, 3 deletions
diff --git a/kiss b/kiss
index e8aa046..ec094cd 100755
--- a/kiss
+++ b/kiss
@@ -765,8 +765,32 @@ pkg_updates() {
# Update each repository in '$KISS_PATH'. It is assumed that
# each repository is 'git' tracked.
for repo; do
- log "[${repo##*/}]: Updating repository."
- (cd "$repo"; git rev-parse --git-dir >/dev/null && git pull)
+ cd "$repo"
+
+ # Go to the root of the repository (if it exists).
+ cd "$(git rev-parse --show-toplevel 2>/dev/null)" 2>/dev/null ||:
+
+ [ -d .git ] || {
+ log "[$repo]: Not a git repository, skipping..."
+ continue
+ }
+
+ case $repos in
+ # If the repository has already been updated, skip it.
+ *" $PWD "*) ;;
+ *)
+ repos="$repos $PWD "
+
+ log "[$PWD]: Updating repository."
+
+ if [ -w "$PWD" ]; then
+ git pull
+ else
+ log "[$PWD]: Need root to update."
+ sudo git pull
+ fi
+ ;;
+ esac
done
log "Checking for new package versions..."
@@ -818,6 +842,8 @@ pkg_clean() {
# to the build.
[ "$KISS_DEBUG" = 1 ] && return
+ log "Cleaning cache directories..."
+
# Remove temporary directories.
rm -rf -- "$mak_dir" "$pkg_dir" "$tar_dir"
@@ -967,7 +993,7 @@ args() {
# Print version and exit.
v|ve|ver|vers|versi|versio|version)
- log "kiss 0.6.0"
+ log "kiss 0.6.1"
;;
# Print usage and exit.