[yocto] [yocto-autobuilder][PATCH] PublishArtifacts.py: fix file check to work under dash

Joshua Lock joshua.g.lock at linux.intel.com
Mon Aug 22 03:28:05 PDT 2016


On Sat, 2016-08-20 at 15:50 -0700, Bill Randle wrote:
> An earlier patch (ed3857990) to check for existing msd5sum files
> worked
> fine when tested under bash, but failed with an error message about
> [[
> not found when run under dash. Updated the test to not rely on
> bashisms.
> 
> Signed-off-by: Bill Randle <william.c.randle at intel.com>
> ---
>  lib/python2.7/site-
> packages/autobuilder/buildsteps/PublishArtifacts.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/PublishArtifacts.py
> b/lib/python2.7/site-
> packages/autobuilder/buildsteps/PublishArtifacts.py
> index d8b554f..58048f0 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/PublishArtifacts.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/PublishArtifacts.py
> @@ -259,8 +259,9 @@ class PublishArtifacts(ShellCommand):
>      def generateMD5cmd(self, artifact, deploy_dir):
>          cmd = ""
>          if os.environ.get('GEN_IMG_MD5') == "True":
> +            # crufty test for existing md5sum file required for dash
> shell
>              cmd += "for x in `find " + deploy_dir + " -maxdepth 5
> -type f`;"
> -            cmd += "do if [[ $x != *.md5sum ]]; then md5sum $x >> "
> + "$x.md5sum; fi; done;"
> +            cmd += "do echo ${x} | grep -q '\.md5sum'; if [ $? -ne 0
> ]; then md5sum $x >> " + "$x.md5sum; fi; done;"
>          return cmd

Rather than a "crufty" test, how about using POSIX sh parameter
expansion, i.e.

$ foo="blah.bar"
$ if [ ${foo##*.} == bar ]; then echo "bar!"; fi
bar!

Therefore, the patch would be something like (untested):

cmd += "if [ ${x##*.} == .md5sum ]; then md5sum $x >> $x.md5sum; fi"

Regards,

Joshua

>  
>      def getDeployNames(self, artifact, buildername):



More information about the yocto mailing list