From 22659709b8a2744b750a9f0d95ecd58b8ffbfa5c Mon Sep 17 00:00:00 2001 From: emmett1 Date: Sat, 12 Aug 2017 13:45:55 +0800 Subject: [PATCH] updated --- buildpkg | 43 ++++++++++++++++++++++++++++++------------- installpkg | 15 ++++++++++++--- removepkg | 26 ++++++++++++++++++-------- scratch | 2 ++ 4 files changed, 62 insertions(+), 24 deletions(-) diff --git a/buildpkg b/buildpkg index 2f11258..e40723f 100755 --- a/buildpkg +++ b/buildpkg @@ -110,7 +110,7 @@ preparesource() { MODE="Preparing" ;; esac - msg "$MODE ${color_green}$tarballname${color_reset}..." + msg2 "$MODE ${color_green}$tarballname${color_reset}..." $COMMAND if [ $? != 0 ]; then @@ -120,7 +120,7 @@ preparesource() { fi fi else - msg "Preparing ${color_green}$sources${color_reset}..." && cp $sources $SRC || ERROR_PREPARE_SOURCE=yes + msg2 "Preparing ${color_green}$sources${color_reset}..." && cp $sources $SRC || ERROR_PREPARE_SOURCE=yes fi done @@ -241,9 +241,10 @@ packaging() { rm $PACKAGE_DIR/$PKGNAME fi exitscript1 - else + else + pkgsize="$(ls -lh $PACKAGE_DIR/$PKGNAME | awk '{print $5}')" $EXTPROG -t -v -f $PACKAGE_DIR/$PKGNAME - msg "Successfully create package ${color_green}$PKGNAME${color_reset}." + msg "Successfully create package ${color_green}$PKGNAME${color_reset}. (${pkgsize})" fi case $PREINSTALL_STATUS in @@ -295,10 +296,12 @@ buildpkg() { getsource - if [ -f .md5sum ]; then - checkmdsum - else - updatemdsum + if [ ! "IGNORE_MDSUM" ]; then + if [ -f .md5sum ]; then + checkmdsum + else + updatemdsum + fi fi preparesource @@ -327,19 +330,30 @@ checkdeps() { for dep in ${depends[@]}; do if [ ! -d $INDEX_DIR/$dep ]; then - msg "Missing dep: ${color_yellow}$dep${color_reset}" + MSDEP+=($dep) + #msg "Missing dep: ${color_yellow}$dep${color_reset}" MISSING_DEP=yes fi done for makedep in ${makedepends[@]}; do if [ ! -d $INDEX_DIR/$makedep ]; then - msg "Missing dep: ${color_yellow}$makedep${color_reset} (make)" + MSMKDEP+=($makedep) + #msg "Missing dep: ${color_yellow}$makedep${color_reset} (make)" MISSING_DEP=yes fi done - [ "$MISSING_DEP" ] && exitscript1 + if [ "$MISSING_DEP" ]; then + msg "Missing dependencies:" + for msd in ${MSDEP[@]}; do + msg2 "$msd" + done + for msmkd in ${MSMKDEP[@]}; do + msg2 "$msmkd (make)" + done + exitscript1 + fi } @@ -416,6 +430,9 @@ parse_options() { -ic|--ignore-conflict) IGNORE_CONFLICT=yes ;; + -im|--ignore-mdsum) + IGNORE_MDSUM=yes + ;; -r|--reinstall) REINSTALL_PKG=yes ;; @@ -452,10 +469,10 @@ parse_options() { -rd|--redownload) REDOWNLOAD_SOURCE=yes ;; - -uc|--update-checksum) + -um|--update-mdsum) UPDATE_CHECKSUM=yes ;; - -cc|--check-checksum) + -cm|--check-mdsum) CHECK_CHECKSUM=yes ;; --no-color) diff --git a/installpkg b/installpkg index ef75d54..4733b83 100755 --- a/installpkg +++ b/installpkg @@ -11,13 +11,17 @@ spkglock() { installpkg() { + msg "Installing ${color_green}$packagename${color_reset}..." + #ignore dependency check if [ ! "$IGNORE_DEP" ]; then + msg2 "Checking package dependencies..." checkdeps fi #ignore conflict if [ ! "$IGNORE_CONFLICT" ]; then + msg2 "Checking package/file conflict..." checkconflict checkpkgconflict fi @@ -36,7 +40,7 @@ installpkg() { fi #installing package into system - msg "Installing ${color_green}$packagename${color_reset}..." + msg2 "Extracting package..." if [ "$VERBOSE_INSTALL" ]; then tar --keep-directory-symlink -x -v -p -f $PKGNAME -C $ROOT_DIR --exclude=.pkginfo --exclude=.pkginstall else @@ -104,12 +108,17 @@ checkdeps() { for dep in ${depends[@]}; do if [ ! -d $INDEX_DIR/$dep ]; then - msg "Missing dep: ${color_yellow}$dep${color_reset}" + MSGDEP+=($dep) + #msg "Missing dep: ${color_yellow}$dep${color_reset}" MISSING_DEP=yes fi done - if [ "$MISSING_DEP" = "yes" ]; then + if [ "$MISSING_DEP" ]; then + msg "Missing dependencies:" + for msdp in ${MSGDEP[@]}; do + msg2 "$msdp" + done exit 1 fi diff --git a/removepkg b/removepkg index 3baa308..16e4472 100755 --- a/removepkg +++ b/removepkg @@ -11,6 +11,14 @@ spkglock() { removepkg() { + msg "Removing ${color_green}$ipackagename${color_reset}..." + + ### CHECK DEPENDENCY ### + if [ ! "$IGNORE_DEP" ]; then + msg2 "Checking dependencies..." + checkdeps $RMNAME + fi + # create lock file prevent simultaneous install/remove process running spkglock @@ -18,7 +26,7 @@ removepkg() { oldversion="$iversion" oldrelease="$irelease" run_preremove $1 fi - msg "Removing ${color_green}$ipackagename${color_reset}..." + msg2 "Deleting files..." while IFS=' ' read -r line; do pushd $ROOT_DIR if [ "$VERBOSE_REMOVE" = "yes" ]; then @@ -115,13 +123,20 @@ checkdeps() { depends=$(cat $INDEX_DIR/$installed/.pkginfo | grep ^depends | cut -d " " -f3-) for dep in ${depends[@]}; do if [ "$dep" = "$1" ]; then - msg "Package ${color_yellow}$iname-$iversion-$irelease${color_reset} is needed for ${color_green}$pkgname${color_reset}." + ERRDEP+=($pkgname) + #msg "Package ${color_yellow}$iname-$iversion-$irelease${color_reset} is needed for ${color_green}$pkgname${color_reset}." DEPERROR=yes fi done done - [ "$DEPERROR" ] && exit 1 + if [ "$DEPERROR" ]; then + msg "Package ${color_yellow}$iname-$iversion-$irelease${color_reset} is needed for:" + for pkg in ${ERRDEP[@]}; do + msg2 "$pkg" + done + exit 1 + fi } check_directory() { @@ -210,11 +225,6 @@ main() { ### GET NAME, VERSION, RELEASE FROM INSTALLED PACKAGE DATABASE ### getoldname $RMNAME - ### CHECK DEPENDENCY ### - if [ ! "$IGNORE_DEP" ]; then - checkdeps $RMNAME - fi - ### REMOVE PACKAGE ### removepkg $RMNAME diff --git a/scratch b/scratch index b99e5b1..1829eb1 100755 --- a/scratch +++ b/scratch @@ -23,7 +23,9 @@ listinstalled() { for installed in $(ls $INDEX_DIR); do getinstalledname $installed msg3 $installedname + installedpkg+=($installed) done + msg "Total installed package: ${#installedpkg[@]}" } getinstalledname() {