diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-07-01 11:42:39 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2014-07-01 11:42:39 -0300 |
commit | adb4bdc2aeeb9ccded0f8b1deae6307a3201c6e2 (patch) | |
tree | ac44ac0d48686fda31b69b23a6c6411672f84b32 /libre-testing/libretools/libretools.install | |
parent | 12a02bd3b3c4e6633fdf1df1f1e6f758a123157e (diff) | |
parent | da8c861ca2d2f2eb336bab5899f2c341a6f86458 (diff) | |
download | abslibre-adb4bdc2aeeb9ccded0f8b1deae6307a3201c6e2.tar.gz abslibre-adb4bdc2aeeb9ccded0f8b1deae6307a3201c6e2.tar.bz2 abslibre-adb4bdc2aeeb9ccded0f8b1deae6307a3201c6e2.zip |
Merge branch 'master' of ssh://projects.parabolagnulinux.org:1863/~git/abslibre
Diffstat (limited to 'libre-testing/libretools/libretools.install')
-rw-r--r-- | libre-testing/libretools/libretools.install | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/libre-testing/libretools/libretools.install b/libre-testing/libretools/libretools.install new file mode 100644 index 000000000..35edf68c7 --- /dev/null +++ b/libre-testing/libretools/libretools.install @@ -0,0 +1,72 @@ +#!/bin/sh + +_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='DLAGENTS+=({https,libre}'\''::/usr/bin/librefetch -p "$BUILDFILE" -- %u %o'\'')' + +# These lines were installed by previous versions of this script +_old_code=( + '[[ ! -x /usr/bin/librefetch ]] || DLAGENTS+=("libre::/usr/bin/librefetch -p \"\$BUILDFILE\" %u %o")' + '[[ ! -x /usr/bin/librefetch ]] || DLAGENTS+=({https,libre}"::/usr/bin/librefetch -p \"\$BUILDFILE\" -- %u %o")' + 'DLAGENTS+=({https,libre}"::/usr/bin/librefetch -p $(printf "%q" "$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 'librefetch' etc/makepkg.conf; then + libremessages msg2 "libretools: librefetch is already in /etc/makepkg.conf" + local line del=false + for line in "${_old_code[@]}"; do + if has_line "$line"; then + pre_remove + post_install + return $? + fi + done + else + 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() { + post_install +} + +pre_remove() { + 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" + + local line + for line in "${_old_code[@]}"; do + del_line "$line" + done +} |