diff options
-rw-r--r-- | libre/libretools/PKGBUILD | 12 | ||||
-rw-r--r-- | libre/libretools/libretools.install | 59 |
2 files changed, 54 insertions, 17 deletions
diff --git a/libre/libretools/PKGBUILD b/libre/libretools/PKGBUILD index 569706f80..c319a4eac 100644 --- a/libre/libretools/PKGBUILD +++ b/libre/libretools/PKGBUILD @@ -9,9 +9,9 @@ pkgdesc="Programs for Parabola development" url="https://projects.parabolagnulinux.org/packages/libretools.git/" license=('GPL3' 'GPL2') -pkgver=20131112 -_libretools_commit=0f03eb7ac94ad72f551eb1b2470b850d6bcf8bf0 -_devtools_commit=021653a0acecc8763e1bbe90dbb770b4e6df4390 +pkgver=20140106 +_libretools_commit=7f3842777aeed4bd7b7ec28ef59c56c489a0831f +_devtools_commit=534d2015b45e013b37e1edbb997bd4df27d7b8fd _packages_url=https://projects.parabolagnulinux.org/packages source=($_packages_url/libretools.git/snapshot/libretools-$_libretools_commit.tar.bz2 @@ -64,8 +64,8 @@ package_libretools() { depends=( "librelib=$pkgver" + "gitget=$pkgver" # `createworkdir` arch-install-scripts # `archroot` uses `pacstrap` - git # `createworkdir` openssh # `librerelease` rsync # `librerelease` and `makechrootpkg.sh` subversion # `diff-unfree` @@ -87,5 +87,5 @@ package_libretools-mips64el() { make install-libretools-mips64el DESTDIR="$pkgdir" } -md5sums=('81e6d3d6fe1964a407a4520ce0916c0d' - '656008e8e35e6adba527b7bfc367b9f7') +md5sums=('bd24a08620fb8dfd298e926250fa28b0' + 'ec69dffa68829f063224de19bbd55fa9') diff --git a/libre/libretools/libretools.install b/libre/libretools/libretools.install index d46990da8..a364b4516 100644 --- a/libre/libretools/libretools.install +++ b/libre/libretools/libretools.install @@ -1,17 +1,53 @@ #!/bin/sh -_makepkgconf_append='[[ ! -x /usr/bin/librefetch ]] || DLAGENTS+=("libre::/usr/bin/librefetch -p \"\$BUILDFILE\" %u %o")' +_edit_code=" 'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'" +_edit_cmnt='#%s # commented out by the libretools post_install script' + +_add_cmnt='# The following line is added by the libretools post_install script' +_add_code='[[ ! -x /usr/bin/librefetch ]] || DLAGENTS+=({https,libre}"::/usr/bin/librefetch -p \"\$BUILDFILE\" -- %u %o")' + +# This line was installed by previous versions of this script +_old_code='[[ ! -x /usr/bin/librefetch ]] || DLAGENTS+=("libre::/usr/bin/librefetch -p \"\$BUILDFILE\" %u %o")' + +# has_line $line +has_line() { grep -Fxq -- "$1" etc/makepkg.conf; } +# add_line $line +add_line() { printf '%s\n' "$1" >> etc/makepkg.conf; } +# del_line $line +del_line() { + local lineno=($(grep -Fxn -- "$1" etc/makepkg.conf | cut -d: -f1)) + if [[ "${#lineno[@]}" -gt 0 ]]; then + sed -i "$(printf '%dd;' "${lineno[@]}")" etc/makepkg.conf; + fi +} +# rep_line $orig $replacement_bre +rep_line() { + local lineno=($(grep -Fxn -- "$1" etc/makepkg.conf | cut -d: -f1)) + if [[ "${#lineno[@]}" == 1 ]]; then + sed -i "${lineno}s|.*|${2//|/\\|}|" etc/makepkg.conf; + fi +} + # arg 1: the new package version post_install() { - if grep -q 'libre::' etc/makepkg.conf; then + if grep -q 'librefetch' etc/makepkg.conf; then libremessages msg2 "libretools: librefetch is already in /etc/makepkg.conf" + if has_line "$_old_code"; then + libremessages msg2 "libretools: removing old librefetch entry in /etc/makepkg.conf" + del_line "$_old_code" + post_install + else + return 0 + fi else - libremessages msg2 "libretools: Adding librefetch to /etc/makepkg.conf" - printf '%s\n' "$_makepkgconf_append" >> etc/makepkg.conf + libremessages msg2 "libretools: adding librefetch to /etc/makepkg.conf" + rep_line "$_edit_code" "$(printf "$_edit_cmnt" '&')" + add_line "$_add_cmnt" + add_line "$_add_code" fi } - + ## arg 1: the new package version ## arg 2: the old package version post_upgrade() { @@ -19,10 +55,11 @@ post_upgrade() { } pre_remove() { - if fgrep -q "$_makepkgconf_append" etc/makepkg.conf; then - libremessages msg2 "libretools: removing librefetch from /etc/makepkg.conf" - sed -i '/libre::/d' etc/makepkg.conf - else - libremessages msg2 "libretools: librefetch is not in /etc/makepkg.conf as we added it" - fi + libremessages msg2 "libretools: removing librefetch from /etc/makepkg.conf" + + rep_line "$(printf "$_edit_cmnt" "$_edit_code")" "$_edit_code" + del_line "$_add_cmnt" + del_line "$_add_code" + + del_line "$_old_code" } |