aboutsummaryrefslogtreecommitdiff
path: root/apkg
diff options
context:
space:
mode:
authoremmett1 <me@emmett1.my>2026-05-29 23:40:06 +0800
committeremmett1 <me@emmett1.my>2026-05-29 23:40:06 +0800
commit49717b9544bacbcd38a10b791adcb4a4aa2e9162 (patch)
treed032595b7f70de43df9e485ce7da196bb125aee3 /apkg
parent53900763c5574fe60beb877dda57ea76941f7cec (diff)
downloadautils-49717b9544bacbcd38a10b791adcb4a4aa2e9162.tar.gz
autils-49717b9544bacbcd38a10b791adcb4a4aa2e9162.zip
updates
Diffstat (limited to 'apkg')
-rwxr-xr-xapkg73
1 files changed, 35 insertions, 38 deletions
diff --git a/apkg b/apkg
index e3dd428..74373d6 100755
--- a/apkg
+++ b/apkg
@@ -5,12 +5,13 @@
# \ \_\ \_\\ \_\ \ \_\ \_\\ \_____\
# \/_/\/_/ \/_/ \/_/\/_/ \/_____/
#
-# APKG - Alice Package Manager (C) 2023-2025 Emmett1
+# APKG - Alice Package Manager (C) 2023-2026 Emmett1
#
fetch_src() {
[ "$source" ] || return 0
for i in $source; do
+ unset resume
i=${i%::noextract}
case $i in
*::*) sn=${i%::*};;
@@ -239,8 +240,9 @@ build_src() {
fi
elif [ -d $name-$version ]; then
build_dir=$name-$version
- elif [ -d "$(ls -1 --group-directories-first | head -n1)" ]; then
- build_dir=$(ls -1 --group-directories-first | head -n1)
+ elif [ -d "$(ls -1d */ 2>/dev/null | head -n1)" ]; then
+ build_dir=$(ls -1d */ 2>/dev/null | head -n1)
+ build_dir=${build_dir%/}
fi
# cd into extracted source directory
@@ -291,13 +293,14 @@ build_src() {
esac
rm -rf $m
done
- for i in $(find $PKG/usr/share/man -type f); do
- [ $i = ${i%%.gz} ] || continue
- gzip -9 $i
+ find $PKG/usr/share/man -type f | while IFS= read -r i; do
+ [ "$i" = "${i%%.gz}" ] || continue
+ gzip -9 "$i"
done
- for i in $(find $PKG/usr/share/man -type l) ; do
- ln -s $(readlink $i).gz ${i%.gz}.gz
- rm $i
+ find $PKG/usr/share/man -type l | while IFS= read -r i; do
+ [ "$i" = "${i%%.gz}" ] || continue
+ ln -s "$(readlink "$i").gz" "${i%.gz}.gz"
+ rm "$i"
done
fi
@@ -333,9 +336,14 @@ build_src() {
# strip binaries and libraries
if [ ! "$no_strip" ]; then
- find $PKG | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs ${CROSS_COMPILE}strip --strip-all 2>/dev/null
- find $PKG | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs ${CROSS_COMPILE}strip --strip-unneeded 2>/dev/null
- find $PKG | xargs file | grep "current ar archive" | cut -f 1 -d : | xargs ${CROSS_COMPILE}strip --strip-debug 2>/dev/null
+ find $PKG -type f -exec file {} + | while read -r line; do
+ f=${line%%: *}
+ case $line in
+ *ELF*executable*) ${CROSS_COMPILE}strip --strip-all "$f" 2>/dev/null;;
+ *ELF*shared\ object*) ${CROSS_COMPILE}strip --strip-unneeded "$f" 2>/dev/null;;
+ *current\ ar\ archive*) ${CROSS_COMPILE}strip --strip-debug "$f" 2>/dev/null;;
+ esac
+ done
fi
# usrmerge
@@ -369,28 +377,17 @@ build_src() {
ret 1
fi
- # temporary: for backward compatibility
- if [ "$(grep '#MARKER' /usr/bin/spm)" ]; then
- cd $PKG
- spm -b $packagefile || {
- msg "Failed packaging $packagefile"
- ret 1
- }
- else
- cd $APKG_PACKAGE_DIR
- spm -b $PKG && {
- mv package.spm $packagefile
- } || {
- msg "Failed packaging $packagefile"
- ret 1
- }
- fi
+ cd $PKG
+ spm -b $packagefile || {
+ msg "Failed packaging $packagefile"
+ ret 1
+ }
+ cd - >/dev/null
- if [ ! -f "$apkg_list" ] || [ "$apkg_build" -nt "$apkg_list" ]; then
+ if [ ! -f "$apkg_list" ] || [ -n "$(find "$apkg_build" -newer "$apkg_list")" ]; then
pkg_updatefiles
fi
- cd $HERE
remove_workdir
}
@@ -429,11 +426,11 @@ checkdep() {
[ -s $SPM_PKGDB/$ii ] && continue
fi
# if deps already in process list, skip, cycle deps detected
- printf "%s\n" $process | tr ' ' '\n' | grep -qx $ii && continue
+ printf "%s\n" $process | tr ' ' '\n' | grep -Fxq "$ii" && continue
# skip if itself in depends list
[ "$ii" = "$1" ] && continue
# skip if pkg already in deps list
- printf "%s\n" $DEPS | tr ' ' '\n' | grep -x $ii && continue
+ printf "%s\n" $DEPS | tr ' ' '\n' | grep -Fx "$ii" && continue
# check deps
checkdep $ii
done
@@ -444,7 +441,7 @@ checkdep() {
pkg_deplist() {
for i in $@; do
# if already have in list deps, dont check again
- if [ ! $(printf "%s\n" $DEPS | tr ' ' '\n' | grep -x $i) ]; then
+ if [ ! $(printf "%s\n" $DEPS | tr ' ' '\n' | grep -Fx "$i") ]; then
checkdep $i
fi
done
@@ -462,7 +459,7 @@ pkg_dependents() {
for r in $APKG_REPO; do
rr="$rr $r/*/depends"
done
- grep -x $1 $rr 2>/dev/null | rev | cut -d / -f 2 | rev
+ grep -Fx "$1" $rr 2>/dev/null | rev | cut -d / -f 2 | rev
}
pkg_depends() {
@@ -487,7 +484,7 @@ pkg_outdate() {
verbose=1 pkg_allinstalled | while read -r n v; do
if [ "$mask" ]; then
[ "$APKG_MASK" ] && {
- printf "%s\n" "$APKG_MASK" | tr ' ' '\n' | grep -xq $n && continue
+ printf "%s\n" "$APKG_MASK" | tr ' ' '\n' | grep -Fxq "$n" && continue
}
fi
[ "$(pkg_path $n)" ] || continue
@@ -515,7 +512,7 @@ pkg_sysup() {
msg "Solving dependencies..."
for p in $(pkg_deplist $od); do
[ -s $SPM_PKGDB/$p ] || ni="$ni $p"
- printf "%s\n" $od | tr ' ' '\n' | grep -qx $p && pu="$pu $p"
+ printf "%s\n" $od | tr ' ' '\n' | grep -Fxq "$p" && pu="$pu $p"
done
if [ "$ni" ]; then
newpkg=$(printf "%s\n" $ni | tr ' ' '\n' | wc -l)
@@ -551,7 +548,7 @@ pkg_search() {
}
}
-pkg_depinstalll() {
+pkg_depinstall() {
needroot
for p in $@; do
if [ -s $SPM_PKGDB/$p ]; then
@@ -822,7 +819,7 @@ updateopts() {
parseopts() {
while [ "$1" ]; do
case $1 in
- -I) pkg_depinstalll "$(parsesubopt "$@")"; exit 0;;
+ -I) pkg_depinstall "$(parsesubopt "$@")"; exit 0;;
-D) pkg_deplist "$(parsesubopt "$@")"; exit 0;;
-r) pkg_remove "$(parsesubopt "$@")"; exit 0;;
-p) pkg_path "$(parsesubopt "$@")"; exit 0;;