diff --git a/pkgadd b/pkgadd index db362f1..9a491c7 100755 --- a/pkgadd +++ b/pkgadd @@ -93,7 +93,7 @@ parse_opts() { --no-backup) NO_BACKUP=yes ;; --no-color) NOCOLOR=yes ;; --root=*) ROOT="${1#*=}" ;; - *.spkg.tar.*) PKGNAME="$1" ;; + *.spkg.tar.*) PKGNAME="$(realpath $1)" ;; *) msg "Invalid option! ($1)"; exit 1 ;; esac shift @@ -316,8 +316,8 @@ if [ -f $INDEX_DIR/$name/.pkginstall ]; then fi # running ldconfig -if [ -x /sbin/ldconfig ]; then - /sbin/ldconfig -r $ROOT_DIR +if [ -x $ROOT_DIR/sbin/ldconfig ]; then + $ROOT_DIR/sbin/ldconfig -r $ROOT_DIR fi ret 0 diff --git a/pkgbuild b/pkgbuild index 8d8f3ed..72f8e17 100755 --- a/pkgbuild +++ b/pkgbuild @@ -495,9 +495,10 @@ parse_opts() { --no-postupgrade) OPTS+=($1) ;; --no-backup) OPTS+=($1) ;; --redownload) REDOWNLOAD_SOURCE=yes ;; - --srcdir=*) SOURCE_DIR="${1#*=}" ;; - --pkgdir=*) PACKAGE_DIR="${1#*=}" ;; - --logdir=*) LOG_DIR="${1#*=}" ;; + --config=*) PKGBUILD_CONF="${1#*=}" ;; + --srcdir=*) CUSTOM_SOURCE_DIR="${1#*=}" ;; + --pkgdir=*) CUSTOM_PACKAGE_DIR="${1#*=}" ;; + --logdir=*) CUSTOM_LOG_DIR="${1#*=}" ;; *) msg "Invalid $(basename $0) option! ($1)"; exit 1 ;; esac shift @@ -523,6 +524,7 @@ Options: -w, --keep-work keep working directory -l, --log log build process -h, --help show this help message + --config= use custom config file --srcdir= override directory path for sources --pkgdir= override directory path for compiled package --logdir= override directory path for build logs @@ -538,14 +540,35 @@ EOF main() { + parse_opts $(extract_opt $@) + if [ -f $PKGBUILD_CONF ]; then source $PKGBUILD_CONF else - msgerr "'$PKGBUILD_CONF' file not found." + msgerr "Config file not found ('$PKGBUILD_CONF')" exit 1 fi - parse_opts $(extract_opt $@) + if [ "$CUSTOM_SOURCE_DIR" ]; then + SOURCE_DIR="$CUSTOM_SOURCE_DIR" + fi + + if [ "$CUSTOM_PACKAGE_DIR" ]; then + PACKAGE_DIR="$CUSTOM_PACKAGE_DIR" + fi + + if [ "$CUSTOM_LOG_DIR" ]; then + LOG_DIR="$CUSTOM_LOG_DIR" + fi + + if [ -z "$SOURCE_DIR" ]; then + msgerr "Option '--srcdir=' need argument (path)" + exit 1 + elif [ -z "$PACKAGE_DIR" ]; then + msgerr "Option '--pkgdir=' need argument (path)" + exit 1 + fi + checkdir "$SOURCE_DIR" "$PACKAGE_DIR" "$WORK_DIR" "$LOG_DIR" # show usage if [ "$SHOWHELP" ]; then @@ -565,15 +588,6 @@ main() { depends=$(grep "^# depends[[:blank:]]*:" $PKGBUILD_BSCRIPT | sed 's/^# depends[[:blank:]]*:[[:blank:]]*//') noextract=$(grep "^# noextract[[:blank:]]*:" $PKGBUILD_BSCRIPT | sed 's/^# noextract[[:blank:]]*:[[:blank:]]*//') - if [ -z "$SOURCE_DIR" ]; then - msgerr "Option '--srcdir=' need argument (path)" - exit 1 - elif [ -z "$PACKAGE_DIR" ]; then - msgerr "Option '--pkgdir=' need argument (path)" - exit 1 - fi - checkdir "$SOURCE_DIR" "$PACKAGE_DIR" "$WORK_DIR" "$LOG_DIR" - if [ "$LOGGING" = yes ] && [ -f $LOG_DIR/$name-$version-$release.log ] && [ ! -w $LOG_DIR/$name-$version-$release.log ]; then msgerr "You dont have write permission for '$LOG_DIR/$name-$version-$release.log'." abort 1 diff --git a/scratch b/scratch index 540ce1b..a982a61 100755 --- a/scratch +++ b/scratch @@ -1357,6 +1357,7 @@ Operation: files show list files of installed package path show package's buildscripts path readme print readme file if exist + info print ports info sync update port's repo dup print duplicate ports in repo listinst list installed package in system