Message ID | 20170918024402.3265-4-famz@redhat.com |
---|---|
State | New |
Headers | show |
Series | tests: Add VM based build tests (for non-x86_64 and/or non-Linux) | expand |
Fam Zheng <famz@redhat.com> writes: > Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > scripts/archive-source.sh | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > create mode 100755 scripts/archive-source.sh > > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh > new file mode 100755 > index 0000000000..8b373e3090 > --- /dev/null > +++ b/scripts/archive-source.sh > @@ -0,0 +1,33 @@ > +#!/bin/sh > +# > +# Author: Fam Zheng <famz@redhat.com> > +# > +# Archive source tree, including submodules. This is created for test code to > +# export the source files, in order to be built in a different enviornment, > +# such as in a docker instance or VM. > +# > +# This code is licensed under the GPL version 2 or later. See > +# the COPYING file in the top-level directory. > + > +set -e > + > +if test $# -lt 1; then > + echo "Usage: $0 <output tarball>" > + exit 1 > +fi > + > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > + > +if test -n "$submodules"; then > + { > + git ls-files > + for sm in $submodules; do > + (cd $sm; git ls-files) | sed "s:^:$sm/:" > + done > + } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > "$1".list > +else > + git ls-files > "$1".list > +fi > + > +tar -cf "$1" -T "$1".list > +rm "$1".list -- Alex Bennée
On 09/17/2017 09:43 PM, Fam Zheng wrote: > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > scripts/archive-source.sh | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > create mode 100755 scripts/archive-source.sh > > diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh > new file mode 100755 > index 0000000000..8b373e3090 > --- /dev/null > +++ b/scripts/archive-source.sh > @@ -0,0 +1,33 @@ > +#!/bin/sh > +# > +# Author: Fam Zheng <famz@redhat.com> > +# > +# Archive source tree, including submodules. This is created for test code to > +# export the source files, in order to be built in a different enviornment, > +# such as in a docker instance or VM. > +# > +# This code is licensed under the GPL version 2 or later. See > +# the COPYING file in the top-level directory. > + > +set -e Do we want to rely on 'set -e'? The alternative would be: > + > +if test $# -lt 1; then > + echo "Usage: $0 <output tarball>" > + exit 1 > +fi > + > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > + ...Check here that the $() ran (rather than git being missing) > +if test -n "$submodules"; then > + { > + git ls-files ...and that this ran > + for sm in $submodules; do > + (cd $sm; git ls-files) | sed "s:^:$sm/:" > + done > + } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > "$1".list ...and the grep > +else > + git ls-files > "$1".list ...and the git ls-files > +fi > + > +tar -cf "$1" -T "$1".list ...and the tar > +rm "$1".list > I'm not opposed to the patch going in as-is; but I do like to flag reliance on 'set -e' as it tends to NOT do what you think it does, and ends up getting in the way more than it helps.
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh new file mode 100755 index 0000000000..8b373e3090 --- /dev/null +++ b/scripts/archive-source.sh @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Author: Fam Zheng <famz@redhat.com> +# +# Archive source tree, including submodules. This is created for test code to +# export the source files, in order to be built in a different enviornment, +# such as in a docker instance or VM. +# +# This code is licensed under the GPL version 2 or later. See +# the COPYING file in the top-level directory. + +set -e + +if test $# -lt 1; then + echo "Usage: $0 <output tarball>" + exit 1 +fi + +submodules=$(git submodule foreach --recursive --quiet 'echo $name') + +if test -n "$submodules"; then + { + git ls-files + for sm in $submodules; do + (cd $sm; git ls-files) | sed "s:^:$sm/:" + done + } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) > "$1".list +else + git ls-files > "$1".list +fi + +tar -cf "$1" -T "$1".list +rm "$1".list
Signed-off-by: Fam Zheng <famz@redhat.com> --- scripts/archive-source.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 scripts/archive-source.sh