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
>>
>>
> 
> 
> 
> 


Reply via email to