diff options
author | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2006-12-09 00:58:50 +0000 |
---|---|---|
committer | rhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58> | 2006-12-09 00:58:50 +0000 |
commit | 63cba8f988ab920b59d73d30787b831eaf555af1 (patch) | |
tree | f843fdfbe3500d378b853971fbdec0beaa3845f6 | |
parent | a13a9b7f7cbf2dfa23483caf61cb4d236d88d1ea (diff) | |
download | simplepkg-63cba8f988ab920b59d73d30787b831eaf555af1.tar.gz simplepkg-63cba8f988ab920b59d73d30787b831eaf555af1.tar.bz2 |
simplaret: simplaret_get converted to the new repository scheme
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@44 04377dda-e619-0410-9926-eae83683ac58
-rwxr-xr-x | src/simplaret | 124 |
1 files changed, 58 insertions, 66 deletions
diff --git a/src/simplaret b/src/simplaret index 50eb5a7..f9b3c2f 100755 --- a/src/simplaret +++ b/src/simplaret @@ -186,6 +186,10 @@ function simplaret_set_storage_folder { storage="$PATCHES_DIR/$ARCH/$VERSION" fi + if [ "$repost_type" == "root" ]; then + repository_url="$repository_url/$DISTRO_FOLDER/$EXTRA_FOLDER" + fi + } function simplaret_update { @@ -195,15 +199,13 @@ function simplaret_update { echo updating package information for arch $ARCH and version $VERSION... for repos_type in patches root repos noarch; do + + simplaret_set_storage_folder + for repository in `simplaret_repository $repos_type`; do simplaret_repository_name simplaret_repository_url - simplaret_set_storage_folder - - if [ "$repost_type" == "root" ]; then - repository_url="$repository_url/$DISTRO_FOLDER/$EXTRA_FOLDER" - fi if [ ! -d "$storage/$repository_name" ]; then mkdir -p $storage/$repository_name @@ -334,78 +336,68 @@ function simplaret_purge { function simplaret_get { - # TODO: new repository format - # with no parameters, update the existing packages at the local repo? + # TODO: with no parameters, update the existing packages at the local repo? # support to --get package-version-arch-build.tgz or just half the name - # precedence: patches slackware repos noarch # ROOT_PRIORITY # etc - # search for an already downloaded package - for file in `find $STORAGE/$ARCH/$VERSION/ -name $1*tgz 2> /dev/null`; do - candidate="`basename $file`" - if [ "`package_name $candidate`" == "$1" ]; then - # check if has the same version and build number, otherwise erase the old one - for result in `simplaret_search `basename $file tgz` -basename-only`; do - if [ "`package_name $candidate`" == "`package_name $result`" ] && \ - [ "`package_version $candidate`" == "`package_version $result`" ] && \ - [ "`package_build $candidate`" == "`package_build $result`" ]; then - echo package $candidate already downloaded and stored at `dirname $file` - return 0 - else - rm $file - fi - done - fi - done + # first search for an already downloaded package + for repos_type in patches root repos noarch; do - # first search for the package in the root repository - if [ ! -f "$STORAGE/$ARCH/$VERSION/FILELIST.TXT" ]; then - if [ "$WARNING" != "0" ] || [ ! -z "$SILENT" ]; then - echo warning: no file list for root repository on arch $ARCH version $VERSION, please do a simplaret --update - fi - else - for file in `simplaret_find_package $1 $STORAGE/$ARCH/$VERSION`; do + simplaret_set_storage_folder + + for file in `find $storage/ -name $1*tgz 2> /dev/null`; do candidate="`basename $file`" if [ "`package_name $candidate`" == "$1" ]; then - simplaret_root_url - simplaret_download $root_url/$DISTRO_FOLDER/$EXTRA_FOLDER $file $STORAGE/$ARCH/$VERSION - if [ ! -f "$STORAGE/$ARCH/$VERSION/$candidate" ]; then - echo error downloading $candidate from root repository $root_url, please check your settings - exit 1 - else - echo package $candidate stored at $STORAGE/$ARCH/$VERSION - simplaret_checksum $STORAGE/$ARCH/$VERSION/CHECKSUMS.md5 $STORAGE/$ARCH/$VERSION/$candidate - exit 0 - fi + # check if has the same version and build number, otherwise erase the old one + for result in `simplaret_search `basename $file tgz` -basename-only`; do + if [ "`package_name $candidate`" == "`package_name $result`" ] && \ + [ "`package_version $candidate`" == "`package_version $result`" ] && \ + [ "`package_build $candidate`" == "`package_build $result`" ]; then + echo package $candidate already downloaded and stored at `dirname $file` + return 0 + else + rm $file + fi + done fi done - fi - # then search for the package in contrib repos - for repos in `simplaret_repository repos`; do - simplaret_repos_name - simplaret_repos_url - if [ ! -f "$STORAGE/$ARCH/$VERSION/$repos_name/FILELIST.TXT" ]; then - if [ "$WARNING" != "0" ] || [ ! -z "$SILENT" ]; then - echo warning: no file list for $repos_name repository on arch $ARCH version $VERSION, please do a simplaret --update - fi - else - for file in `simplare_find_package $1 $STORAGE/$ARCH/$VERSION/$repos_name`; do - candidate="`basename $file`" - if [ "`package_name $candidate`" == "$1" ]; then - simplaret_download $repos_url $file $STORAGE/$ARCH/$VERSION/$repos_name - if [ ! -f "$STORAGE/$ARCH/$VERSION/$repos_name/$candidate" ]; then - echo error downloading $candidate from repository $repos_url, please check your settings - echo will try to fetch from the next repo, if exists... - else - echo package $candidate stored at $STORAGE/$ARCH/$VERSION/$repos_name - simplaret_checksum $STORAGE/$ARCH/$VERSION/$repos_name/CHECKSUMS.md5 $STORAGE/$ARCH/$VERSION/$repos_name/$candidate - exit 0 - fi + done + + # then search for the package in the repositories + for repos_type in patches root repos noarch; do + + simplaret_set_storage_folder + + for repository in `simplaret_repository $repos_type`; do + + simplaret_repository_name + simplaret_repository_url + + if [ ! -f "$storage/FILELIST.TXT" ]; then + if [ "$WARNING" != "0" ] || [ ! -z "$SILENT" ]; then + # TODO: message should also work for noarch repositories + echo warning: no file list for $repos_type repository on arch $ARCH version $VERSION, please do a simplaret --update fi - done - fi + else + for file in `simplaret_find_package $1 $storage`; do + candidate="`basename $file`" + if [ "`package_name $candidate`" == "$1" ]; then + simplaret_download $repository_url $file $storage + if [ ! -f "$storage/$candidate" ]; then + echo error downloading $candidate from $repos_type repository $root_url, please check your settings + exit 1 + else + echo package $candidate stored at $STORAGE/$ARCH/$VERSION + simplaret_checksum $storage/CHECKSUMS.md5 $storage/$candidate + exit 0 + fi + fi + done + fi + + done done } |