aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkiss80
1 files changed, 36 insertions, 44 deletions
diff --git a/kiss b/kiss
index 07688af..a46989b 100755
--- a/kiss
+++ b/kiss
@@ -132,27 +132,24 @@ pkg_sources() {
repo_dir=$(pkg_find "$1")
while read -r src _; do
- case $src in
- # Remote source.
- *://*)
- [ -f "${src##*/}" ] && {
- log "$1" "Found cached source '${src##*/}'"
- continue
- }
-
- wget "$src" || {
- rm -f "${src##*/}"
- die "$1" "Failed to download $src"
- }
- ;;
-
- # Local source.
- *)
- [ -f "$repo_dir/$src" ] || die "$1" "No local file '$src'"
-
- log "$1" "Found local file '$src'"
- ;;
- esac
+ # Remote source (cached).
+ if [ -f "${src##*/}" ]; then
+ log "$1" "Found cached source '${src##*/}'"
+
+ # Remote source.
+ elif [ -z "${src##*://*}" ]; then
+ wget "$src" || {
+ rm -f "${src##*/}"
+ die "$1" "Failed to download $src"
+ }
+
+ # Local source.
+ elif [ -f "$repo_dir/$src" ]; then
+ log "$1" "Found local file '$src'"
+
+ else
+ die "$1" "No local file '$src'"
+ fi
done < "$repo_dir/sources"
}
@@ -166,29 +163,24 @@ pkg_extract() {
while read -r src dest; do
mkdir -p "$mak_dir/$1/$dest" && cd "$mak_dir/$1/$dest"
- case $src in
- # Only 'tar' archives are currently supported for extraction.
- # Any other file-types are simply copied to '$mak_dir' which
- # allows for manual extraction.
- *://*.tar*|*://*.tgz)
- tar xf "$src_dir/$1/${src##*/}" --strip-components 1 \
- || die "$1" "Couldn't extract ${src##*/}"
- ;;
-
- *)
- # Local file.
- if [ -f "$repo_dir/$src" ]; then
- cp -f "$repo_dir/$src" .
-
- # Remote file.
- elif [ -f "$src_dir/$1/${src##*/}" ]; then
- cp -f "$src_dir/$1/${src##*/}" .
-
- else
- die "$1" "Local file $src not found"
- fi
- ;;
- esac
+ # Only 'tar' archives are currently supported for extraction.
+ # Any other file-types are simply copied to '$mak_dir' which
+ # allows for manual extraction.
+ if [ -z "${src##*.tar*}" ] || [ -z "${src##*.tgz}" ]; then
+ tar xf "$src_dir/$1/${src##*/}" --strip-components 1 \
+ || die "$1" "Couldn't extract ${src##*/}"
+
+ # Local file.
+ elif [ -f "$repo_dir/$src" ]; then
+ cp -f "$repo_dir/$src" .
+
+ # Remote file.
+ elif [ -f "$src_dir/$1/${src##*/}" ]; then
+ cp -f "$src_dir/$1/${src##*/}" .
+
+ else
+ die "$1" "Local file $src not found"
+ fi
done < "$repo_dir/sources"
}