[pacman-dev] [PATCH 3/5] bacman: small code cleanup

Dan McGee dpmcgee at gmail.com
Mon Oct 3 11:47:04 EDT 2011


On Sat, Oct 1, 2011 at 5:12 AM, lolilolicon <lolilolicon at gmail.com> wrote:
> This includes:
>  - Quoting fixes.
>  - Drop deprecated mktemp option -p.
>  - Set extglob nullglob shell options at the top.
>  - Use extended globbing instead of regex to match %HEADER% in pacman db.
>
> Signed-off-by: lolilolicon <lolilolicon at gmail.com>
> ---
>  contrib/bacman.in |   21 +++++++++++----------
>  1 files changed, 11 insertions(+), 10 deletions(-)
>
> diff --git a/contrib/bacman.in b/contrib/bacman.in
> index 93145e4..63bd511 100755
> --- a/contrib/bacman.in
> +++ b/contrib/bacman.in
> @@ -20,6 +20,9 @@
>  #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
>  #
>
> +shopt -s extglob
> +shopt -s nullglob
> +
>  readonly progname="bacman"
>  readonly progver="0.2.1"
>
> @@ -109,8 +112,8 @@ fi
>  #
>  # Begin
>  #
> -echo Package: ${pkg_namver}
> -work_dir=$(mktemp -d -p /tmp)
> +echo "Package: ${pkg_namver}"
> +work_dir=$(mktemp -d /tmp/bacman-XXXXXXXXXX)
We shouldn't be doing this like this: see
http://projects.archlinux.org/namcap.git/commit/?id=b56ca639858f0a3cdeb418c912f01a3e1b00b4b4

>  cd "$work_dir" || exit 1
>
>  #
> @@ -124,12 +127,12 @@ while read i; do
>                continue
>        fi
>
> -       if [[ "$i" =~ %[A-Z]*% ]]; then
> +       if [[ "$i" == %+([A-Z])% ]]; then
>                current=$i
>                continue
>        fi
>
> -       case $current in
> +       case "$current" in
>                %FILES%)
>                        ret=0
>                        if [[ -e /$i ]]; then
> @@ -163,6 +166,7 @@ pkg_size=$(du -sk | awk '{print $1 * 1024}')
>
>  #
>  # .PKGINFO stuff
> +# TODO adopt makepkg's write_pkginfo() into this or scripts/library
>  #
>  echo Generating .PKGINFO metadata...
>  echo "# Generated by $progname $progver"    > .PKGINFO
> @@ -174,11 +178,11 @@ echo "#"                    >> .PKGINFO
>
>  cat "$pkg_dir"/{desc,files} |
>  while read i; do
> -       if [[ -z "$i" ]]; then
> +       if [[ -z $i ]]; then
>                continue;
>        fi
>
> -       if [[ "$i" =~ %[A-Z]*% ]]; then
> +       if [[ "$i" == %+([A-Z])% ]]; then
>                current=$i
>                continue
>        fi
> @@ -273,9 +277,6 @@ esac
>  pkg_file="$pkg_dest/$pkg_namver-$pkg_arch${PKGEXT}"
>  ret=0
>
> -# when fileglobbing, we want * in an empty directory to expand to
> -# the null string rather than itself
> -shopt -s nullglob
>  # TODO: Maybe this can be set globally for robustness
>  shopt -s -o pipefail
>  bsdtar -cf - $comp_files * |
> @@ -284,7 +285,7 @@ case "$PKGEXT" in
>        *tar.bz2) bzip2 -c -f ;;
>        *tar.xz)  xz -c -z - ;;
>        *tar)     cat ;;
> -esac > ${pkg_file} || ret=$?
> +esac > "${pkg_file}"; ret=$?
>
>  if (( ret )); then
>        echo "ERROR: unable to write package to $pkg_dest"
> --
> 1.7.6.4


More information about the pacman-dev mailing list