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)
> + local oldfile="$(dirname "$1")/$oldfilename"
> + warning "$(gettext "Removed existing file
> '%s'")" "$oldfilename"
> + rm -f $oldfile
> + 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
>
>
--
William Giokas | KaiSforza
GnuPG Key: 0x73CD09CF
Fingerprint: F73F 50EF BBE2 9846 8306 E6B8 6902 06D8 73CD 09CF
pgptZsKF1Iy1Q.pgp
Description: PGP signature
