From 33a8a56106adae25714eec24d1bcb4889fcf8267 Mon Sep 17 00:00:00 2001 From: rhatto Date: Sun, 8 Apr 2007 00:03:16 +0000 Subject: simplaret: fix, see doc/CHANGELOG git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@319 04377dda-e619-0410-9926-eae83683ac58 --- trunk/lib/common.sh | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 2 deletions(-) (limited to 'trunk/lib/common.sh') diff --git a/trunk/lib/common.sh b/trunk/lib/common.sh index 1eff334..6bbfca0 100644 --- a/trunk/lib/common.sh +++ b/trunk/lib/common.sh @@ -32,7 +32,10 @@ CONF="$BASE_CONF/simplepkg.conf" JAIL_LIST="$BASE_CONF/jailist" SIMPLARET="simplaret" -# pkgtool stuff +# ----------------------------------------------- +# pkgtool functions +# ----------------------------------------------- + function package_name { STRING=`basename $1 .tgz` @@ -58,6 +61,10 @@ function package_name { } +# ----------------------------------------------- +# package info functions +# ----------------------------------------------- + function package_version { # get VERSION from a package name @@ -91,6 +98,10 @@ function package_build { } +# ----------------------------------------------- +# package administrative functions +# ----------------------------------------------- + function install_packages { local check installed unable_to_install root @@ -145,6 +156,10 @@ function remove_packages { } +# ----------------------------------------------- +# config file functions +# ----------------------------------------------- + function eval_parameter { # usage: eval $1 parameter from $CONF @@ -294,6 +309,10 @@ function eval_config { } +# ----------------------------------------------- +# arch and version functions +# ----------------------------------------------- + function default_version { # get version from /etc/slackware-version @@ -320,6 +339,10 @@ function default_arch { } +# ----------------------------------------------- +# template functions +# ----------------------------------------------- + function search_default_template { if [ -e "$BASE_CONF/default.template" ]; then @@ -388,6 +411,10 @@ function search_template { } +# ----------------------------------------------- +# unix permission functions +# ----------------------------------------------- + function numeric_perm { # get the numeric permission of a file @@ -426,6 +453,10 @@ function get_group { } +# ----------------------------------------------- +# subversion functions +# ----------------------------------------------- + function use_svn { # check if svn usage is enabled @@ -469,6 +500,10 @@ function svn_check { } +# ----------------------------------------------- +# update jail functions +# ----------------------------------------------- + function update_template_files { # update template files from svn @@ -521,10 +556,132 @@ function set_jail_perms { } +# ----------------------------------------------- +# repository build functions +# ----------------------------------------------- + +function svn_add_meta { + + find *meta -exec svn add {} 2> /dev/null \; + find . -name *meta -exec svn add {} 2> /dev/null \; + +} + +function gen_filelist { + + # generate FILELIST.TXT + + local cwd + + for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILELIST.TXT + echo "Created new FILELIST.TXT" + + if [ -d "patches" ]; then + gen_patches_filelist patches + for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILE_LIST + echo "Created new patches/FILE_LIST" + fi + +} + +function gen_patches_filelst { + + # generate FILE_LIST + + mkdir -p $1 + cwd="`pwd`" + cd $1 + for file in `find | grep -e ".tgz$"`; do ls -l $file; done > FILE_LIST + cd $pwd + +} + +function gen_packages_txt { + + # generate PACKAGES.TXT + + echo '' > PACKAGES.TXT + find . -type f -name '*.meta' -exec cat {} \; >> PACKAGES.TXT + cat PACKAGES.TXT | gzip -9 -c - > PACKAGES.TXT.gz + echo "Created new PACKAGES.TXT and PACKAGES.TXT.gz" + + if [ -d "patches" ]; then + find patches -type f -name '*.meta' -exec cat {} \; >> patches/PACKAGES.TXT + cat patches/PACKAGES.TXT | gzip -9 -c - > patches/PACKAGES.TXT.gz + echo "Created new patches/PACKAGES.TXT and patches/PACKAGES.TXT.gz" + fi + +} + +function gen_md5_checksums { + + # generate CHECKSUMS.md5 + + echo '' > CHECKSUMS.md5 + find . -type f -name '*.tgz' -exec md5sum {} \; >> CHECKSUMS.md5 + cat CHECKSUMS.md5 | gzip -9 -c - > CHECKSUMS.md5.gz + echo "Created new CHECKSUMS.md5 and CHECKSUMS.md5.gz" + + if [ -d "patches" ]; then + find patches -type f -name '*.tgz' -exec md5sum {} \; >> patches/CHECKSUMS.md5 + cat patches/CHECKSUMS.md5 | gzip -9 -c - > patches/CHECKSUMS.md5.gz + echo "Created new patches/CHECKSUMS.md5 and patches/CHECKSUMS.md5.gz" + fi + +} + +function gen_meta { + + # generate metafiles + + if [ ! -f $1 ]; then + echo "File not found: $1" + exit 1; + else + echo "Processing $1" + fi + + if [ "`echo $1|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|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//") + CONFLICTS=$(tar xzfO $1 install/slack-conflicts 2>/dev/null|xargs -r -iZ echo -n "Z,"|sed -e "s/,$//") + SUGGESTS=$(tar xzfO $1 install/slack-suggests 2>/dev/null|xargs -r ) + METAFILE=${NAME%tgz}meta + + echo "PACKAGE NAME: $NAME" > $LOCATION/$METAFILE + + if [ -n "$DL_URL" ]; then + echo "PACKAGE MIRROR: $DL_URL" >> $LOCATION/$METAFILE + fi + + echo "PACKAGE LOCATION: $LOCATION" >> $LOCATION/$METAFILE + echo "PACKAGE SIZE (compressed): $SIZE K" >> $LOCATION/$METAFILE + echo "PACKAGE SIZE (uncompressed): $USIZE K" >> $LOCATION/$METAFILE + echo "PACKAGE REQUIRED: $REQUIRED" >> $LOCATION/$METAFILE + echo "PACKAGE CONFLICTS: $CONFLICTS" >> $LOCATION/$METAFILE + echo "PACKAGE SUGGESTS: $SUGGESTS" >> $LOCATION/$METAFILE + echo "PACKAGE DESCRIPTION:" >> $LOCATION/$METAFILE + + tar xzfO $1 install/slack-desc | grep -E '\w+\:'|grep -v '^#' >> $LOCATION/$METAFILE + + echo "" >> $LOCATION/$METAFILE + +} + +# ----------------------------------------------- +# misc functions +# ----------------------------------------------- + function slash { # remove additional slashes - echo $1 | sed -e 's/\/\+/\//g' + echo $* | sed -e 's/\/\+/\//g' } -- cgit v1.2.3