On Mon, Apr 14, 2014 at 11:26:17AM -0500, Ben Nemec wrote: > tldr: I propose we use bash explicitly for all diskimage-builder > scripts (at least for the short-term - see details below). > > This is something that was raised on my linting changes to enable > set -o pipefail. That is a bash-ism, so it could break in the > diskimage-builder scripts that are run using /bin/sh. Two possible > fixes for that: switch to /bin/bash, or don't use -o pipefail > > But I think this raises a bigger question - does diskimage-builder > require bash? If so, I think we should just add a rule to enforce > that /bin/bash is the shell used for everything. I know we have a > bunch of bash-isms in the code already, so at least in the > short-term I think this is probably the way to go, so we can get the > benefits of things like -o pipefail and lose the ambiguity we have > right now. For reference, a quick grep of the diskimage-builder > source shows we have 150 scripts using bash explicitly and only 24 > that are plain sh, so making the code truly shell-agnostic is likely > to be a significant amount of work. > > In the long run it might be nice to have cross-shell compatibility, > but if we're going to do that I think we need a couple of things: 1) > Someone to do the work (I don't have a particular need to run dib in > not-bash, so I'm not signing up for that :-) 2) Testing in other > shells - obviously just changing /bin/bash to /bin/sh doesn't mean > we actually support anything but bash. We really need to be gating > on other shells if we're going to make a significant effort to > support them. It's not good to ask reviewers to try to catch every > bash-ism proposed in a change. This also relates to some of the > unit testing work that is going on right now too - if we had better > unit test coverage of the scripts we would be able to do this more > easily. > > Thoughts?
I supose that rewriting the code to be in Python is out of the question ? IMHO shell is just a terrible language for doing any program that is remotely complicated (ie longer than 10 lines of shell), for the reasons you are unfortunately illustrating here, among many others. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev