[pacman-dev] [PATCH] makepkg: Allow using sources with :: in them
Git has the ability to use helper applications for interfacing with hg, and from what we had before, the following url:: foo::git+hg::http://foo.bar/foobar would get converted to something along the lines of: filename: foo URL: http://foo.bar/foobar and the 'git+hg' part would essentially be ignored when it's getting set up in the 'get_protocol' and 'get_downloadclient' functions. With this patch it is possible to have a source link with '::' in it, however it is not possible to have a filename with '::', which is the current behavior. --- scripts/makepkg.sh.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index d8cdc88..7d6ecfa 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -275,10 +275,10 @@ get_url() { get_protocol() { if [[ $1 = *://* ]]; then # strip leading filename - local proto="${1##*::}" + local proto="${1#*::}" printf "%s\n" "${proto%%://*}" elif [[ $1 = *lp:* ]]; then - local proto="${1##*::}" + local proto="${1#*::}" printf "%s\n" "${proto%%lp:*}" else printf "%s\n" local @@ -293,7 +293,7 @@ get_downloadclient() { for i in "${DLAGENTS[@]}"; do local handler="${i%%::*}" if [[ $proto = "$handler" ]]; then - local agent="${i##*::}" + local agent="${i#*::}" break fi done -- 2.0.0.rc0
On 29/04/14 05:16, William Giokas wrote:
Git has the ability to use helper applications for interfacing with hg, and from what we had before, the following url::
foo::git+hg::http://foo.bar/foobar
This patch looks fine at first glance. But for examples like that, why would you not use the hg source directly in the PKGBUILD? What is the advantage?
would get converted to something along the lines of:
filename: foo URL: http://foo.bar/foobar
and the 'git+hg' part would essentially be ignored when it's getting set up in the 'get_protocol' and 'get_downloadclient' functions. With this patch it is possible to have a source link with '::' in it, however it is not possible to have a filename with '::', which is the current behavior. --- scripts/makepkg.sh.in | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index d8cdc88..7d6ecfa 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -275,10 +275,10 @@ get_url() { get_protocol() { if [[ $1 = *://* ]]; then # strip leading filename - local proto="${1##*::}" + local proto="${1#*::}" printf "%s\n" "${proto%%://*}" elif [[ $1 = *lp:* ]]; then - local proto="${1##*::}" + local proto="${1#*::}" printf "%s\n" "${proto%%lp:*}" else printf "%s\n" local @@ -293,7 +293,7 @@ get_downloadclient() { for i in "${DLAGENTS[@]}"; do local handler="${i%%::*}" if [[ $proto = "$handler" ]]; then - local agent="${i##*::}" + local agent="${i#*::}" break fi done
participants (2)
-
Allan McRae
-
William Giokas