diff options
Diffstat (limited to 'trunk')
-rw-r--r-- | trunk/lib/common.sh | 139 | ||||
-rw-r--r-- | trunk/src/createpkg | 67 |
2 files changed, 105 insertions, 101 deletions
diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh index e34ce8e..8f78468 100644 --- a/trunk/lib/common.sh +++ b/trunk/lib/common.sh @@ -510,31 +510,25 @@ function svn_check { # check if a file is under svn # usage: svn_check <file> - local cwd folder retval - - cwd="`pwd`" folder="`dirname $1`" file="`basename $1`" if [ -d "$folder/.svn" ]; then - cd $folder + ( + cd $folder - if [ "`svn status $file | awk '{ print $1 }'`" == "?" ]; then - retval="1" - else - retval="0" - fi + if [ "`svn status $file | awk '{ print $1 }'`" == "?" ]; then + return 1 + else + return 0 + fi + ) else - - retval="1" - + return 1 fi - cd $cwd - return $retval - } function build_repo { @@ -613,10 +607,7 @@ function svn_copy { cp $orig/$file $dest if [ -d "`dirname $dest`/.svn" ]; then chown_svn $dest && chgrp_svn $dest - cwd="`pwd`" - cd `dirname $dest` - svn_add `basename $dest` - cd $cwd + ( cd `dirname $dest` && svn_add `basename $dest` ) fi } @@ -799,15 +790,18 @@ function gen_patches_filelist { if [ ! -z "$1" ] && [ -d "$1" ]; then - cwd="`pwd`" - cd $1 + folder="$1" + + ( - find . -type f -name '*.tgz' -follow -print | sort | tr '\n' '\0' | \ - xargs -0r ls -ldL --time-style=long-iso > FILE_LIST + cd $folder - svn_add FILE_LIST + find . -type f -name '*.tgz' -follow -print | sort | tr '\n' '\0' | \ + xargs -0r ls -ldL --time-style=long-iso > FILE_LIST - cd $cwd + svn_add FILE_LIST + + ) if [ "$1" == "." ]; then echo "Created new FILE_LIST" @@ -826,17 +820,20 @@ function gen_packages_txt { if [ ! -z "$1" ] && [ -d "$1" ]; then - cwd="`pwd`" - cd $1 + folder="$1" + + ( + + cd $folder - echo '' > PACKAGES.TXT - find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT - cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz + echo '' > PACKAGES.TXT + find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT + cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz - svn_add PACKAGES.TXT - svn_add PACKAGES.TXT.gz + svn_add PACKAGES.TXT + svn_add PACKAGES.TXT.gz - cd $cwd + ) if [ "$1" == "." ]; then echo "Created new PACKAGES.TXT and PACKAGES.TXT.gz" @@ -855,18 +852,21 @@ function gen_md5_checksums { if [ -d "$1" ]; then - cwd="`pwd`" - cd $1 + folder="$1" - echo 'MD5 digest for files in this directory.' > CHECKSUMS.md5 - echo '' >> CHECKSUMS.md5 - find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5 - cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz + ( - svn_add CHECKSUMS.md5 - svn_add CHECKSUMS.md5.gz + cd $folder - cd $cwd + echo 'MD5 digest for files in this directory.' > CHECKSUMS.md5 + echo '' >> CHECKSUMS.md5 + find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5 + cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz + + svn_add CHECKSUMS.md5 + svn_add CHECKSUMS.md5.gz + + ) if [ "$1" == "." ]; then echo "Created new CHECKSUMS.md5 and CHECKSUMS.md5.gz" @@ -890,26 +890,27 @@ function update_md5_checksum { folder="$1" fi - cwd="`pwd`" - cd $folder + ( - if [ ! -f CHECKSUMS.md5 ]; then - gen_md5_checksums . - else - # remove the old entry and add a new one - sed -i "/ \.*\/*$(regexp_slash $file)$/d" CHECKSUMS.md5 - file="`echo $file | sed -e 's/\.*\/*//'`" # remove additional ./ - md5sum ./$file >> CHECKSUMS.md5 - fi + cd $folder + + if [ ! -f CHECKSUMS.md5 ]; then + gen_md5_checksums . + else + # remove the old entry and add a new one + sed -i "/ \.*\/*$(regexp_slash $file)$/d" CHECKSUMS.md5 + file="`echo $file | sed -e 's/\.*\/*//'`" # remove additional ./ + md5sum ./$file >> CHECKSUMS.md5 + fi - cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz + cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz - echo "Updated CHECKSUMS.md5" + echo "Updated CHECKSUMS.md5" - svn_add CHECKSUMS.md5 - svn_add CHECKSUMS.md5.gz + svn_add CHECKSUMS.md5 + svn_add CHECKSUMS.md5.gz - cd $cwd + ) } @@ -920,19 +921,21 @@ function gen_meta { if [ ! -f $1 ]; then return 1 + else + file="$1" fi - if [ "`echo $1|grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).tgz[ ]{0,}$'`" == "" ]; then + if [ "`echo $file | grep -E '(.*{1,})\-(.*[\.\-].*[\.\-].*).tgz[ ]{0,}$'`" == "" ]; then return fi - NAME=$(echo $1 | sed -re "s/(.*\/)(.*.tgz)$/\2/") - LOCATION=$(echo $1 | sed -re "s/(.*)\/(.*.tgz)$/\1/") - SIZE=$( expr `gunzip -l $1 | tail -n 1 | awk '{print $1}'` / 1024 ) - USIZE=$( expr `gunzip -l $1 | tail -n 1 | awk '{print $2}'` / 1024 ) - REQUIRED=$(tar xzfO $1 install/slack-required 2>/dev/null | grep -v -e "^#" | xargs -r -iZ echo -n "Z," | sed -e "s/,$//") - CONFLICTS=$(tar xzfO $1 install/slack-conflicts 2>/dev/null | grep -v -e "^#" | xargs -r -iZ echo -n "Z," | sed -e "s/,$//") - SUGGESTS=$(tar xzfO $1 install/slack-suggests 2>/dev/null | grep -v -e "^#" | xargs -r ) + NAME=$(echo $file | sed -re "s/(.*\/)(.*.tgz)$/\2/") + LOCATION=$(echo $file | sed -re "s/(.*)\/(.*.tgz)$/\1/") + SIZE=$( expr `gunzip -l $file | tail -n 1 | awk '{ print $1 }'` / 1024 ) + USIZE=$( expr `gunzip -l $file | tail -n 1 | awk '{ print $2 }'` / 1024 ) + REQUIRED=$(tar xzfO $file install/slack-required 2>/dev/null | grep -v -e "^#" | xargs -r -iZ echo -n "Z," | sed -e "s/,$//") + CONFLICTS=$(tar xzfO $file install/slack-conflicts 2>/dev/null | grep -v -e "^#" | xargs -r -iZ echo -n "Z," | sed -e "s/,$//") + SUGGESTS=$(tar xzfO $file install/slack-suggests 2>/dev/null | grep -v -e "^#" | xargs -r ) METAFILE=${NAME%tgz}meta echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE @@ -949,12 +952,12 @@ function gen_meta { echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE - tar xzfO $1 install/slack-desc | grep -E '\w+\:' | grep -v '^#' >> $LOCATION/$METAFILE + tar xzfO $file install/slack-desc | grep -E '\w+\:' | grep -v '^#' >> $LOCATION/$METAFILE echo "" >> $LOCATION/$METAFILE - echo "Created metafile for `basename $1`" + echo "Created metafile for `basename $file`" - ( cd `dirname $1` && svn_add `basename $1 .tgz`.meta ) + ( cd `dirname $file` && svn_add `basename $file .tgz`.meta ) } diff --git a/trunk/src/createpkg b/trunk/src/createpkg index 5c82f7f..a11a101 100644 --- a/trunk/src/createpkg +++ b/trunk/src/createpkg @@ -527,11 +527,11 @@ PKG_NAME="`ls -1 -c $MAKEPKG_REPOS/$PACKAGE-*-*-*.tgz | head -n 1 | xargs basena # Create repository directory if [ ! -e $NEW_REPOS ]; then if [ -d "$MAKEPKG_REPOS/.svn" ] && ! svn_check $NEW_REPOS; then - cwd="`pwd`" - cd $MAKEPKG_REPOS - chown_svn $MAKEPKG_REPOS && chgrp_svn $MAKEPKG_REPOS - svn_mkdir $( echo ${SCRIPT_BASE#$SLACKBUILDS_DIR/} ) - cd $cwd + ( + cd $MAKEPKG_REPOS + chown_svn $MAKEPKG_REPOS && chgrp_svn $MAKEPKG_REPOS + svn_mkdir $( echo ${SCRIPT_BASE#$SLACKBUILDS_DIR/} ) + ) else mkdir -p $NEW_REPOS fi @@ -553,33 +553,34 @@ if [ $REMOVE_OLD_PACKAGE -eq $on ]; then # Using subversion if [ -d "$MAKEPKG_REPOS/.svn" ]; then - cwd="`pwd`" - cd $MAKEPKG_REPOS + ( - PACKAGE_VERSION="`package_version $PKG_NAME`" - PACKAGE_ARCH="`package_arch $PKG_NAME`" - PACKAGE_BUILD="`package_build $PKG_NAME`" + cd $MAKEPKG_REPOS - # Using -mindepth 2 so it doesn't delete the new package - for file in `find . -mindepth 2 -name "$PACKAGE-*-*-*.tgz" -o -name "$PACKAGE-*-*-*.meta"`; do - candidate="`echo $file | sed -e 's/\.meta/\.tgz/'`" # otherwise package info functions can fail - # Just delete packages with different arch, version or build number - if [ "`package_version $candidate`" != "$PACKAGE_VERSION" ] || \ - [ "`package_arch $candidate`" != "$PACKAGE_ARCH" ] || \ - [ "`package_build $candidate`" != "$PACKAGE_BUILD" ]; then - svn_del $file - fi - done + PACKAGE_VERSION="`package_version $PKG_NAME`" + PACKAGE_ARCH="`package_arch $PKG_NAME`" + PACKAGE_BUILD="`package_build $PKG_NAME`" - for file in `find $MAKEPKG_REPOS -name "$PACKAGE.slack-required"`; do - if [ $MOVE_SLACK_REQUIRED -eq $off ]; then - svn_del $file - elif [ ! -z "$SLACK_REQUIRED" ] && [ "$NEW_REPOS/$PACKAGE.slack-required" != "$file" ]; then - svn_del $file - fi - done + # Using -mindepth 2 so it doesn't delete the new package + for file in `find . -mindepth 2 -name "$PACKAGE-*-*-*.tgz" -o -name "$PACKAGE-*-*-*.meta"`; do + candidate="`echo $file | sed -e 's/\.meta/\.tgz/'`" # otherwise package info functions can fail + # Just delete packages with different arch, version or build number + if [ "`package_version $candidate`" != "$PACKAGE_VERSION" ] || \ + [ "`package_arch $candidate`" != "$PACKAGE_ARCH" ] || \ + [ "`package_build $candidate`" != "$PACKAGE_BUILD" ]; then + svn_del $file + fi + done - cd $cwd + for file in `find $MAKEPKG_REPOS -name "$PACKAGE.slack-required"`; do + if [ $MOVE_SLACK_REQUIRED -eq $off ]; then + svn_del $file + elif [ ! -z "$SLACK_REQUIRED" ] && [ "$NEW_REPOS/$PACKAGE.slack-required" != "$file" ]; then + svn_del $file + fi + done + + ) else # Using -mindepth 2 so it doesn't delete the new package @@ -594,11 +595,11 @@ if [ $MOVE_BIN_PACKAGE -eq $on ]; then mv $MAKEPKG_REPOS/$PKG_NAME $NEW_REPOS/ if [ -d "$NEW_REPOS/.svn" ]; then - cwd="`pwd`" - cd $NEW_REPOS - chown_svn $MAKEPKG_REPOS && chgrp_svn $MAKEPKG_REPOS - svn_add $PKG_NAME - cd $cwd + ( + cd $NEW_REPOS + chown_svn $MAKEPKG_REPOS && chgrp_svn $MAKEPKG_REPOS + svn_add $PKG_NAME + ) fi # Move package's slack-required to binary repository |