Message ID | 20170905021201.25684-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> > --- > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 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..3cae7f34d3 > --- /dev/null > +++ b/scripts/archive-source.sh > @@ -0,0 +1,31 @@ > +#!/bin/sh > +# > +# Author: Fam Zheng <famz@redhat.com> > +# > +# Create archive of source tree, including submodules > +# > +# This work is licensed under the terms of the GNU GPL, version 2. > +# See the COPYING file in the top-level directory. > + > +set -e > + > +if test $# -lt 1; then > + echo "Usage: $0 <output>" Maybe <output tarball> to make it clear what it creates? > + exit 1 > +fi > + > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > + > +if test -n "$submodules"; then > + { > + git ls-files Couldn't we do the main git ls-files first and then append the data for any submodules? > + 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 5 September 2017 at 03:11, Fam Zheng <famz@redhat.com> wrote: > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 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..3cae7f34d3 > --- /dev/null > +++ b/scripts/archive-source.sh > @@ -0,0 +1,31 @@ > +#!/bin/sh > +# > +# Author: Fam Zheng <famz@redhat.com> > +# > +# Create archive of source tree, including submodules > +# > +# This work is licensed under the terms of the GNU GPL, version 2. > +# See the COPYING file in the top-level directory. Why GPL-2-only? We generally prefer GPL-2-or-later for new files, or something more permissive. thanks -- PMM
On Fri, 09/08 15:56, Peter Maydell wrote: > On 5 September 2017 at 03:11, Fam Zheng <famz@redhat.com> wrote: > > Signed-off-by: Fam Zheng <famz@redhat.com> > > --- > > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > > 1 file changed, 31 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..3cae7f34d3 > > --- /dev/null > > +++ b/scripts/archive-source.sh > > @@ -0,0 +1,31 @@ > > +#!/bin/sh > > +# > > +# Author: Fam Zheng <famz@redhat.com> > > +# > > +# Create archive of source tree, including submodules > > +# > > +# This work is licensed under the terms of the GNU GPL, version 2. > > +# See the COPYING file in the top-level directory. > > Why GPL-2-only? We generally prefer GPL-2-or-later for new > files, or something more permissive. Copied from some other script/* files, apparently. :) Will make it GPL-2-or-later. Fam
On Fri, 09/08 15:42, Alex Bennée wrote: > > Fam Zheng <famz@redhat.com> writes: > > > Signed-off-by: Fam Zheng <famz@redhat.com> > > --- > > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > > 1 file changed, 31 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..3cae7f34d3 > > --- /dev/null > > +++ b/scripts/archive-source.sh > > @@ -0,0 +1,31 @@ > > +#!/bin/sh > > +# > > +# Author: Fam Zheng <famz@redhat.com> > > +# > > +# Create archive of source tree, including submodules > > +# > > +# This work is licensed under the terms of the GNU GPL, version 2. > > +# See the COPYING file in the top-level directory. > > + > > +set -e > > + > > +if test $# -lt 1; then > > + echo "Usage: $0 <output>" > > Maybe <output tarball> to make it clear what it creates? OK. > > > + exit 1 > > +fi > > + > > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > > + > > +if test -n "$submodules"; then > > + { > > + git ls-files > > Couldn't we do the main git ls-files first and then append the data for > any submodules? Isn't that exactly what we are doing now? Fam > > > + 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
Fam Zheng <famz@redhat.com> writes: > On Fri, 09/08 15:42, Alex Bennée wrote: >> >> Fam Zheng <famz@redhat.com> writes: >> >> > Signed-off-by: Fam Zheng <famz@redhat.com> >> > --- >> > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ >> > 1 file changed, 31 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..3cae7f34d3 >> > --- /dev/null >> > +++ b/scripts/archive-source.sh >> > @@ -0,0 +1,31 @@ >> > +#!/bin/sh >> > +# >> > +# Author: Fam Zheng <famz@redhat.com> >> > +# >> > +# Create archive of source tree, including submodules >> > +# >> > +# This work is licensed under the terms of the GNU GPL, version 2. >> > +# See the COPYING file in the top-level directory. >> > + >> > +set -e >> > + >> > +if test $# -lt 1; then >> > + echo "Usage: $0 <output>" >> >> Maybe <output tarball> to make it clear what it creates? > > OK. > >> >> > + exit 1 >> > +fi >> > + >> > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') >> > + >> > +if test -n "$submodules"; then >> > + { >> > + git ls-files >> >> Couldn't we do the main git ls-files first and then append the data for >> any submodules? > > Isn't that exactly what we are doing now? I mean hoist the git ls-files out of the if so we can avoid repeating with an else leg. e.g. git ls-files > $1.list if test -n "$submodules"; then { .. the rest.. } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) >> $1.list > > Fam > >> >> > + 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 -- Alex Bennée
On Mon, 09/11 14:43, Alex Bennée wrote: > > Fam Zheng <famz@redhat.com> writes: > > > On Fri, 09/08 15:42, Alex Bennée wrote: > >> > >> Fam Zheng <famz@redhat.com> writes: > >> > >> > Signed-off-by: Fam Zheng <famz@redhat.com> > >> > --- > >> > scripts/archive-source.sh | 31 +++++++++++++++++++++++++++++++ > >> > 1 file changed, 31 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..3cae7f34d3 > >> > --- /dev/null > >> > +++ b/scripts/archive-source.sh > >> > @@ -0,0 +1,31 @@ > >> > +#!/bin/sh > >> > +# > >> > +# Author: Fam Zheng <famz@redhat.com> > >> > +# > >> > +# Create archive of source tree, including submodules > >> > +# > >> > +# This work is licensed under the terms of the GNU GPL, version 2. > >> > +# See the COPYING file in the top-level directory. > >> > + > >> > +set -e > >> > + > >> > +if test $# -lt 1; then > >> > + echo "Usage: $0 <output>" > >> > >> Maybe <output tarball> to make it clear what it creates? > > > > OK. > > > >> > >> > + exit 1 > >> > +fi > >> > + > >> > +submodules=$(git submodule foreach --recursive --quiet 'echo $name') > >> > + > >> > +if test -n "$submodules"; then > >> > + { > >> > + git ls-files > >> > >> Couldn't we do the main git ls-files first and then append the data for > >> any submodules? > > > > Isn't that exactly what we are doing now? > > I mean hoist the git ls-files out of the if so we can avoid repeating > with an else leg. e.g. > > git ls-files > $1.list The output of top "git ls-files" has to be filtered by grep if the submodules list is non-empty, so we cannot save LoC by hoisting. Fam > if test -n "$submodules"; then > { > .. the rest.. > } | grep -x -v $(for sm in $submodules; do echo "-e $sm"; done) >> $1.list > > > > > Fam > > > >> > >> > + 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 > > > -- > Alex Bennée
diff --git a/scripts/archive-source.sh b/scripts/archive-source.sh new file mode 100755 index 0000000000..3cae7f34d3 --- /dev/null +++ b/scripts/archive-source.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Author: Fam Zheng <famz@redhat.com> +# +# Create archive of source tree, including submodules +# +# This work is licensed under the terms of the GNU GPL, version 2. +# See the COPYING file in the top-level directory. + +set -e + +if test $# -lt 1; then + echo "Usage: $0 <output>" + 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 | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/archive-source.sh