X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=functions%2Ffpkg;h=7be29602274b3f76a6080c71fc5a2f59c7ac1b83;hb=0b50a2a2ae9f3ec72bcc2993aef1d57faa38dc66;hp=673299b339cf035014b87dd18285f0bce4cbdd4d;hpb=7b710dedf5e96b7f546da2fcdd9abe6ab9f046ec;p=hvlinux.git diff --git a/functions/fpkg b/functions/fpkg index 673299b..7be2960 100644 --- a/functions/fpkg +++ b/functions/fpkg @@ -425,7 +425,14 @@ test_archive_integrity() # pm (Perl module via CPAN) # fd (freedesktop.org) # -o Option specific to mode -# -s Subdirectory on server +# -s DIR Subdirectory on server +# -v NUM Subdirectory on server is equal to package version. If -s option is specified, then +# append version number to value of -s argument: +# NUM= Full version number +# NUM=1 First number of package version +# NUM=2 First two numbers of package version +# Ex: fpkg -s "v" -v 2 mypkg-1.2.3 http://mypkg.com would fetch from url: +# http://mypkg.com/v1.2/mypkg-1.2.3.tar.bz2 # -w First erase destination file if it exists (except in test mode) fpkg() { @@ -437,9 +444,11 @@ fpkg() local MODE_OPT="" local SRC_DIR="" local FD_SUBDIR_FINAL="" + local VARG="" + unset VOPTION unset ERASE_FIRST - while getopts "d:e:f:m:o:s:w" flag ;do + while getopts "d:e:f:m:o:s:v:w" flag ;do case ${flag} in d) # Fetch directory (where to put file) @@ -462,6 +471,10 @@ fpkg() s) SRC_DIR=${OPTARG} ;; + v) + VOPTION="y" + VARG=${OPTARG} + ;; w) ERASE_FIRST="y" ;; @@ -489,6 +502,29 @@ fpkg() local URL=${2} fi + if [ -n "${VOPTION}" ]; then + # Append version number to SRC_DIR (if specified) + case ${VARG} in + 0) + # Full version number + SRC_DIR+="$(get_pkg_ver ${PACK})" + ;; + 1) + SRC_DIR+="$(get_pkg_ver1 ${PACK})" + ;; + 2) + SRC_DIR+="$(get_pkg_ver2 ${PACK})" + ;; + 3) + SRC_DIR+="$(get_pkg_ver3 ${PACK})" + ;; + *) + echo "${FUNCNAME}(), invalid -v argument: ${VARG}" + return 1 + ;; + esac + fi + if [ -n "${MODE}" ]; then case ${MODE} in gnu)