----- Original Message ----- > From: "Chris Jones" <c...@tenshu.net> > To: openst...@nemebean.com, "OpenStack Development Mailing List (not for > usage questions)" > <openstack-dev@lists.openstack.org> > Sent: Monday, April 14, 2014 2:24:57 PM > Subject: Re: [openstack-dev] [tripleo] /bin/bash vs. /bin/sh > > Hi > > Apart from special cases like the ramdisk's /init, which is a script that > needs to run in busybox's shell, everything should be using bash. There's no > point us tying ourselves in knots trying to achieve POSIX compliance for the > sake of it, when bashisms are super useful.
+1 for the pragmatic approach. > > Cheers, > > Chris > > > On 14 April 2014 17:26, Ben Nemec < openst...@nemebean.com > 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? > > Thanks. > > -Ben > > ______________________________ _________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack. org > http://lists.openstack.org/ cgi-bin/mailman/listinfo/ openstack-dev > > > > -- > Cheers, > > Chris > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev