On 30/05/13 12:13, William Giokas wrote: > On Thu, May 30, 2013 at 10:11:49AM +1000, Phillip Smith wrote: >> From: Phillip Smith <[email protected]> >> >> when maintaining a custom repo, often it is undesirable to retain older >> versions of packages. this patch adds the --remove option to remove the >> current package file from disk before adding the new one to the >> database. >> >> Signed-off-by: Phillip Smith <[email protected]> >> --- >> scripts/repo-add.sh.in | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in >> index 4470dd0..2fdb165 100644 >> --- a/scripts/repo-add.sh.in >> +++ b/scripts/repo-add.sh.in >> @@ -31,6 +31,7 @@ declare -r confdir='@sysconfdir@' >> QUIET=0 >> DELTA=0 >> ONLYADDNEW=0 >> +RMEXISTING=0 >> WITHFILES=0 >> SIGN=0 >> VERIFY=0 >> @@ -58,6 +59,7 @@ Multiple packages to add can be specified on the command >> line.\n")" >> printf -- "$(gettext "Options:\n")" >> printf -- "$(gettext " -d, --delta generate and add >> delta for package update\n")" >> printf -- "$(gettext " -n, --new only add packages >> that are not already in the database\n")" >> + printf -- "$(gettext " -R, --remove remove any existing >> packages with the same name (eg, an older version)\n")" >> printf -- "$(gettext " -f, --files update database's >> file list\n")" >> elif [[ $cmd == "repo-remove" ]] ; then >> printf -- "$(gettext "Usage: repo-remove [options] <path-to-db> >> <packagename|delta> ...\n")" >> @@ -304,6 +306,15 @@ db_write_entry() { >> local oldfilename=$(grep -A1 FILENAME >> "$pkgentry/desc" | tail -n1) >> local oldfile="$(dirname "$1")/$oldfilename" >> fi >> + elif (( RMEXISTING )); then >> + # only remove existing package if we're not doing deltas >> + pkgentry=$(find_pkgentry "$pkgname") >> + if [[ -n $pkgentry ]]; then >> + local oldfilename=$(grep -A1 FILENAME >> "$pkgentry/desc" | tail -n1) > > Just one thing. Replace this with: > > local oldfilename="$(awk '/%FILENAME%/ {getline; print}')" > > Yeah, the quotes aren't that important, but this way you save spawning a > tail process when you could just do it with this. (I just had to do this > to get pkgbase entries from db's in one of my pet scripts, so yeah) >
Note that line is cpoy-paste from just above. My bet is a bunch of such improvements could be made. >> + local oldfile="$(dirname "$1")/$oldfilename" >> + warning "$(gettext "Removed existing file >> '%s'")" "$oldfilename" >> + rm -f $oldfile Remember the .sig file too! >> + fi >> fi >> fi >> >> @@ -611,6 +622,7 @@ while (( $# )); do >> -q|--quiet) QUIET=1;; >> -d|--delta) DELTA=1;; >> -n|--new) ONLYADDNEW=1;; >> + -R|--remove) RMEXISTING=1;; >> -f|--files) WITHFILES=1;; >> --nocolor) USE_COLOR='n';; >> -s|--sign) >> -- >> 1.8.2.3 >> >> > > > >
