On Wednesday 19 September 2012 18:16:11 Ian Wienand wrote:
> --- /dev/null
> +++ b/scripts/create-spdx
> @@ -0,0 +1,91 @@
> +#!/bin/bash

considering this is also POSIX compliant, use /bin/sh

> +#  http://www.spdx.org/

would be handy to include this URL in the usage output

> +BUSYBOX_VERSION=$(egrep '^VERSION =|^PATCHLEVEL =|^SUBLEVEL ='
> "${SRC_DIR}/Makefile" | sed 's/^.*= //' | tr '\n' '.')

why not make this an argument to the script and have the makefile pass it along 
via $(KERNELVERSION) ?  seems like much less effort.

> +cp "${SRC_DIR}/scripts/COPYRIGHT.spdx.template" "${DEST_FILE}"

probably should run `set -e` at the top of the script to avoid having to add 
error checking everywhere

> +# replace template strings
> +sed "s/%BUSYBOX_VERSION%/${BUSYBOX_VERSION}/" "${DEST_FILE}" >
> "${DEST_FILE}.tmp"
> +mv "${DEST_FILE}.tmp" "${DEST_FILE}"

use the -i flag with sed to avoid this ugly `sed ... > tmp; mv tmp ...` logic

> +echo -e "\n\n# autogenerated file info\n\n" >> "${DEST_FILE}"

use printf rather than `echo -e`.  also, i wonder why you bother quoting the 
dest file when you don't bother quoting any of the source files.

> +    copyright=$(grep 'Copyright' ${f} | sed 's/^.*Copyright/Copyright/')

single command:
        sed -n '/Copyright/s:^.*Copyright:Copyright:p' ${f}

> +    echo "FileName: ${f#$SRC_DIR}" >> "${DEST_FILE}"
> +    echo "FileType: SOURCE" >> "${DEST_FILE}"
> +    echo "FileChecksum: SHA1: ${chksum}" >> "${DEST_FILE}"
> +    echo "LicenseConcluded: GPL-2.0" >> "${DEST_FILE}"
> +    echo "LicenseInfoInFile: NOASSERTION" >> "${DEST_FILE}"

use heredocs to simplify:
        cat <<-EOF >> "${DEST_FILE}"
        FileName: ......
        .....
        EOF

> +VER_FILE=$(tempfile)

use mktemp

> +grep '^FileChecksum' "${DEST_FILE}" | awk '{print $3}' | sort | tr -d '\n'

no need to grep|awk:
        awk '$1 ~ /^FileChecksum' {print $3} "${DEST_FILE}" | sort ...

> > "${VER_FILE}"
> > +VER_HASH=$(sha1sum "${VER_FILE}" | awk '{print $1}')
> +rm -f "${VER_FILE}"

so you create a tempfile just to run sha1 on it ?  use a pipeline and avoid 
that altogether:
VER_HASH=$(awk ... | sort | tr ... | sha1sum | awk ...)

> +sed "s/%PACKAGE_VERIFICATION_CODE%/${VER_HASH}/" "${DEST_FILE}" >
> "${DEST_FILE}.tmp"
> +mv "${DEST_FILE}.tmp" "${DEST_FILE}"

sed -i
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to