From 1a17249159d2425dfd5103b8699673f72394a385 Mon Sep 17 00:00:00 2001 From: Allan McRae Date: Sun, 17 May 2015 22:57:44 +1000 Subject: libmakepkg: extract functions for handling source URLs Signed-off-by: Allan McRae --- scripts/makepkg.sh.in | 119 -------------------------------------------------- 1 file changed, 119 deletions(-) (limited to 'scripts/makepkg.sh.in') diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index cc1fea49..140bb1a2 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -170,130 +170,11 @@ clean_up() { remove_deps } - enter_fakeroot() { msg "$(gettext "Entering %s environment...")" "fakeroot" fakeroot -- $0 -F "${ARGLIST[@]}" || exit $? } - -# a source entry can have two forms : -# 1) "filename::http://path/to/file" -# 2) "http://path/to/file" - -# Return the absolute filename of a source entry -get_filepath() { - local file="$(get_filename "$1")" - local proto="$(get_protocol "$1")" - - case $proto in - bzr*|git*|hg*|svn*) - if [[ -d "$startdir/$file" ]]; then - file="$startdir/$file" - elif [[ -d "$SRCDEST/$file" ]]; then - file="$SRCDEST/$file" - else - return 1 - fi - ;; - *) - if [[ -f "$startdir/$file" ]]; then - file="$startdir/$file" - elif [[ -f "$SRCDEST/$file" ]]; then - file="$SRCDEST/$file" - else - return 1 - fi - ;; - esac - - printf "%s\n" "$file" -} - -# extract the filename from a source entry -get_filename() { - local netfile=$1 - - # if a filename is specified, use it - if [[ $netfile = *::* ]]; then - printf "%s\n" ${netfile%%::*} - return - fi - - local proto=$(get_protocol "$netfile") - - case $proto in - bzr*|git*|hg*|svn*) - filename=${netfile%%#*} - filename=${filename%/} - filename=${filename##*/} - if [[ $proto = bzr* ]]; then - filename=${filename#*lp:} - fi - if [[ $proto = git* ]]; then - filename=${filename%%.git*} - fi - ;; - *) - # if it is just an URL, we only keep the last component - filename="${netfile##*/}" - ;; - esac - printf "%s\n" "${filename}" -} - -# extract the URL from a source entry -get_url() { - # strip an eventual filename - printf "%s\n" "${1#*::}" -} - -# extract the protocol from a source entry - return "local" for local sources -get_protocol() { - if [[ $1 = *://* ]]; then - # strip leading filename - local proto="${1#*::}" - printf "%s\n" "${proto%%://*}" - elif [[ $1 = *lp:* ]]; then - local proto="${1#*::}" - printf "%s\n" "${proto%%lp:*}" - else - printf "%s\n" local - fi -} - -get_downloadclient() { - local proto=$1 - - # loop through DOWNLOAD_AGENTS variable looking for protocol - local i - for i in "${DLAGENTS[@]}"; do - local handler="${i%%::*}" - if [[ $proto = "$handler" ]]; then - local agent="${i#*::}" - break - fi - done - - # if we didn't find an agent, return an error - if [[ -z $agent ]]; then - error "$(gettext "Unknown download protocol: %s")" "$proto" - plain "$(gettext "Aborting...")" - exit 1 # $E_CONFIG_ERROR - fi - - # ensure specified program is installed - local program="${agent%% *}" - if [[ ! -x $program ]]; then - local baseprog="${program##*/}" - error "$(gettext "The download program %s is not installed.")" "$baseprog" - plain "$(gettext "Aborting...")" - exit 1 # $E_MISSING_PROGRAM - fi - - printf "%s\n" "$agent" -} - download_local() { local netfile=$1 local filepath=$(get_filepath "$netfile") -- cgit v1.2.3-24-g4f1b