Loading seblu-commit +92 −70 Original line number Diff line number Diff line Loading @@ -21,12 +21,11 @@ repo="/srv/ftp/archlinux/$dbname" repo_32="$repo/i686" repo_64="$repo/x86_64" [[ ! -f PKGBUILD ]] && echo 'No PKGBUILD' && exit 1 source /etc/makepkg.conf source PKGBUILD # packages to add declare -a to_32 to_64 [[ $(type -t pkgver) == 'function' ]] && pkgver=$(pkgver) [[ -r /etc/makepkg.conf ]] && source /etc/makepkg.conf [[ -r "$HOME/.makepkg.conf" ]] && source "$HOME/.makepkg.conf" shopt -s nullglob Loading @@ -34,6 +33,10 @@ msg() { printf "\e[1;32m==>\e[0;1m $1\e[m\n" "${@:1}" } msg2() { printf "\e[1;34m ->\e[0;1m $1\e[m\n" "${@:1}" } # usage : in_array( $needle, $haystack ) # return : 0 - found # 1 - not found Loading @@ -46,12 +49,6 @@ in_array() { return 1 # Not Found } # sign $1 sign() { msg "Sign $1" gpg --detach-sign "$1" || exit 1 } # $1: srouce # $2: destination cp_acl() { Loading @@ -60,8 +57,11 @@ cp_acl() { cat < "$1" > "$2" } # commit declare -a to_32 to_64 source_pkgbuild() { [[ ! -f PKGBUILD ]] && echo 'No PKGBUILD' && exit 1 source PKGBUILD [[ $(type -t pkgver) == 'function' ]] && pkgver=$(pkgver) for _pkgname in "${pkgname[@]}"; do # define filename base Loading @@ -73,7 +73,6 @@ for _pkgname in "${pkgname[@]}"; do # add any pkg in both repo filename="$filebase-any$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" # register to_32+=("$filename") to_64+=("$filename") Loading @@ -82,49 +81,72 @@ for _pkgname in "${pkgname[@]}"; do # add i686 repo filename="$filebase-i686$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" to_32+=("$filename") fi # add x86_64 repo filename="$filebase-x86_64$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" to_64+=("$filename") fi done } if ((${#to_32[@]} > 0)); then msg "Adding into $dbname i686 dir" # copy new for _i in "${to_32[@]}"; do cp_acl "$_i" "$repo_32/$_i" || exit 2 cp_acl "$_i.sig" "$repo_32/$_i.sig" || exit 2 done pushd "$repo_32" >/dev/null # update db msg "Adding into $dbname i686 db" repo-add -q -s "$dbname.db.tar.gz" "${to_32[@]}" msg "Adding into $dbname i686 file db" repo-add -q -s -f "$dbname.files.tar.gz" "${to_32[@]}" popd >/dev/null sign_pkg() { msg 'Sign packages' for _pkg; do if [[ ! -f "$_pkg.sig" ]]; then msg2 "Signing $_pkg" gpg --detach-sign "$_pkg" || exit 1 fi done } if ((${#to_64[@]} > 0)); then msg "Adding into $dbname x86_64 dir" # copy new for _i in "${to_64[@]}"; do cp_acl "$_i" "$repo_64/$_i" || exit 2 cp_acl "$_i.sig" "$repo_64/$_i.sig" || exit 2 # add pkg ($2..$n) in argument into repo $1 add_pkg() { (( $# > 1 )) || return local repo="$1" shift msg "Adding packages into $1" # copy files for _pkg; do msg2 "Copying $_pkg" cp_acl "$_pkg" "$repo/$_pkg" || exit 2 cp_acl "$_pkg.sig" "$repo/$_pkg.sig" || exit 2 done pushd "$repo_64" >/dev/null # update db msg "Adding into $dbname x86_64 db" repo-add -q -s "$dbname.db.tar.gz" "${to_64[@]}" msg "Adding into $dbname x86_64 file db" repo-add -q -s -f "$dbname.files.tar.gz" "${to_64[@]}" pushd "$repo" >/dev/null msg2 "Updating $repo db" repo-add -q -s "$dbname.db.tar.gz" "$@" msg2 "Updating $repo file db" repo-add -q -s -f "$dbname.files.tar.gz" "$@" popd >/dev/null } # if packages are on command line add them, otherwise look in PKGBUILD if (( $# > 0 )); then for _pkg; do case "$_pkg" in *-i686$PKGEXT) to_32+=("$_pkg");; *-x86_64$PKGEXT) to_64+=("$_pkg");; *-any$PKGEXT) to_32+=("$_pkg"); to_64+=("$_pkg");; esac done else source_pkgbuild fi if (( ${#to_32[@]} + ${#to_64[@]} == 0 )); then echo 'No package to add' >&2 exit 2 fi sign_pkg "${to_32[@]}" "${to_64[@]}" # add i686 packages add_pkg "$repo_32" "${to_32[@]}" # add x86_64 packages add_pkg "$repo_64" "${to_64[@]}" # vim:set ts=2 sw=2 ft=sh noet: Loading
seblu-commit +92 −70 Original line number Diff line number Diff line Loading @@ -21,12 +21,11 @@ repo="/srv/ftp/archlinux/$dbname" repo_32="$repo/i686" repo_64="$repo/x86_64" [[ ! -f PKGBUILD ]] && echo 'No PKGBUILD' && exit 1 source /etc/makepkg.conf source PKGBUILD # packages to add declare -a to_32 to_64 [[ $(type -t pkgver) == 'function' ]] && pkgver=$(pkgver) [[ -r /etc/makepkg.conf ]] && source /etc/makepkg.conf [[ -r "$HOME/.makepkg.conf" ]] && source "$HOME/.makepkg.conf" shopt -s nullglob Loading @@ -34,6 +33,10 @@ msg() { printf "\e[1;32m==>\e[0;1m $1\e[m\n" "${@:1}" } msg2() { printf "\e[1;34m ->\e[0;1m $1\e[m\n" "${@:1}" } # usage : in_array( $needle, $haystack ) # return : 0 - found # 1 - not found Loading @@ -46,12 +49,6 @@ in_array() { return 1 # Not Found } # sign $1 sign() { msg "Sign $1" gpg --detach-sign "$1" || exit 1 } # $1: srouce # $2: destination cp_acl() { Loading @@ -60,8 +57,11 @@ cp_acl() { cat < "$1" > "$2" } # commit declare -a to_32 to_64 source_pkgbuild() { [[ ! -f PKGBUILD ]] && echo 'No PKGBUILD' && exit 1 source PKGBUILD [[ $(type -t pkgver) == 'function' ]] && pkgver=$(pkgver) for _pkgname in "${pkgname[@]}"; do # define filename base Loading @@ -73,7 +73,6 @@ for _pkgname in "${pkgname[@]}"; do # add any pkg in both repo filename="$filebase-any$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" # register to_32+=("$filename") to_64+=("$filename") Loading @@ -82,49 +81,72 @@ for _pkgname in "${pkgname[@]}"; do # add i686 repo filename="$filebase-i686$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" to_32+=("$filename") fi # add x86_64 repo filename="$filebase-x86_64$PKGEXT" if [[ -f "$filename" ]]; then [[ -f "$filename.sig" ]] || sign "$filename" to_64+=("$filename") fi done } if ((${#to_32[@]} > 0)); then msg "Adding into $dbname i686 dir" # copy new for _i in "${to_32[@]}"; do cp_acl "$_i" "$repo_32/$_i" || exit 2 cp_acl "$_i.sig" "$repo_32/$_i.sig" || exit 2 done pushd "$repo_32" >/dev/null # update db msg "Adding into $dbname i686 db" repo-add -q -s "$dbname.db.tar.gz" "${to_32[@]}" msg "Adding into $dbname i686 file db" repo-add -q -s -f "$dbname.files.tar.gz" "${to_32[@]}" popd >/dev/null sign_pkg() { msg 'Sign packages' for _pkg; do if [[ ! -f "$_pkg.sig" ]]; then msg2 "Signing $_pkg" gpg --detach-sign "$_pkg" || exit 1 fi done } if ((${#to_64[@]} > 0)); then msg "Adding into $dbname x86_64 dir" # copy new for _i in "${to_64[@]}"; do cp_acl "$_i" "$repo_64/$_i" || exit 2 cp_acl "$_i.sig" "$repo_64/$_i.sig" || exit 2 # add pkg ($2..$n) in argument into repo $1 add_pkg() { (( $# > 1 )) || return local repo="$1" shift msg "Adding packages into $1" # copy files for _pkg; do msg2 "Copying $_pkg" cp_acl "$_pkg" "$repo/$_pkg" || exit 2 cp_acl "$_pkg.sig" "$repo/$_pkg.sig" || exit 2 done pushd "$repo_64" >/dev/null # update db msg "Adding into $dbname x86_64 db" repo-add -q -s "$dbname.db.tar.gz" "${to_64[@]}" msg "Adding into $dbname x86_64 file db" repo-add -q -s -f "$dbname.files.tar.gz" "${to_64[@]}" pushd "$repo" >/dev/null msg2 "Updating $repo db" repo-add -q -s "$dbname.db.tar.gz" "$@" msg2 "Updating $repo file db" repo-add -q -s -f "$dbname.files.tar.gz" "$@" popd >/dev/null } # if packages are on command line add them, otherwise look in PKGBUILD if (( $# > 0 )); then for _pkg; do case "$_pkg" in *-i686$PKGEXT) to_32+=("$_pkg");; *-x86_64$PKGEXT) to_64+=("$_pkg");; *-any$PKGEXT) to_32+=("$_pkg"); to_64+=("$_pkg");; esac done else source_pkgbuild fi if (( ${#to_32[@]} + ${#to_64[@]} == 0 )); then echo 'No package to add' >&2 exit 2 fi sign_pkg "${to_32[@]}" "${to_64[@]}" # add i686 packages add_pkg "$repo_32" "${to_32[@]}" # add x86_64 packages add_pkg "$repo_64" "${to_64[@]}" # vim:set ts=2 sw=2 ft=sh noet: