[COMMON] Enforce checkbashisms tox profile 48/119248/17
authorGuillaume Lambert <guillaume.lambert@orange.com>
Fri, 12 Mar 2021 12:53:18 +0000 (13:53 +0100)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Wed, 22 Sep 2021 09:17:18 +0000 (09:17 +0000)
commit85b1492555d765b14864e0d2d59db7a50cdccaf0
treeaea3a348a63c939b1c4dfa4f1bc1162ebbd9df0c
parentb62b9cf9e7e5248972baa619c6d015459187cd64
[COMMON] Enforce checkbashisms tox profile

- add checkbahims to tox.ini default profiles
- remove -f options to unforce bashisms detection in explicit bash
  scripts and to differentiate treatments between bash and sh
- migrate #!/bin/bash shebangs to #!/bin/sh for scripts without bashisms
  The following scripts have not been migrated since they still use
  bashisms difficult to migrate (mostly arrays - more details below)

./kubernetes/common/mariadb-init/resources/config/db_init.sh
./kubernetes/portal/components/portal-mariadb/resources/config/ \
mariadb/docker-entrypoint.sh
./kubernetes/helm/plugins/deploy/deploy.sh
./kubernetes/helm/plugins/undeploy/undeploy.sh
./kubernetes/sdnc/components/sdnc-prom/resources/bin/ensureSdncActive.sh

$ find . -not -path '*/\.*' -name *.sh -exec checkbashisms -f {} + 2>&1\
| grep line | cut -d' ' -f 7- | sort | uniq -c | sort -k1,1nr
     18 (bash arrays, ${name[0|*|@]}):
      2 (declare):
      1 ($FUNCNAME):
      1 (shopt):
      1 (trap with ERR|DEBUG|RETURN):

https://mywiki.wooledge.org/Bashism#Arrays
https://mywiki.wooledge.org/Bashism#Special_Variables
https://mywiki.wooledge.org/Bashism#Builtins
https://www.oilshell.org/release/0.5.alpha2/test/spec.wwz/builtin-trap.html

Issue-ID: OOM-2643
Signed-off-by: Guillaume Lambert <guillaume.lambert@orange.com>
Change-Id: Id06ad1d45004321a293bdd26038d8da5f7b6b4ac
25 files changed:
docs/slave_nfs_node.sh
kubernetes/appc/resources/config/appc/opt/onap/appc/bin/health_check.sh
kubernetes/appc/resources/config/appc/opt/onap/appc/bin/startODL.sh
kubernetes/appc/resources/config/appc/opt/onap/ccsdk/bin/installSdncDb.sh
kubernetes/common/cassandra/resources/config/docker-entrypoint.sh
kubernetes/common/music/resources/config/startup.sh
kubernetes/common/timescaledb/resources/init/init-schema.sh
kubernetes/config/prepull_docker.sh
kubernetes/contrib/components/ejbca/resources/ejbca-config.sh
kubernetes/contrib/dns-server-for-vhost-ingress-testing/deploy_dns.sh
kubernetes/contrib/metallb-loadbalancer-inst/install-metallb-on-cluster.sh
kubernetes/contrib/tools/check-for-staging-images.sh
kubernetes/contrib/tools/rke/rke_setup.sh
kubernetes/msb/components/msb-consul/resources/docker-entrypoint.sh
kubernetes/oof/components/oof-has/resources/config/healthy.sh
kubernetes/robot/demo-k8s.sh
kubernetes/robot/ete-k8s.sh
kubernetes/robot/eteHelm-k8s.sh
kubernetes/robot/instantiate-k8s.sh
kubernetes/robot/scripts/etescript/hvves-etescript.sh
kubernetes/robot/scripts/etescript/security-etescript.sh
kubernetes/robot/scripts/etescript/vnfsdk-etescript.sh
kubernetes/sdnc/components/sdnc-prom/resources/bin/prom.sh
kubernetes/sdnc/resources/config/bin/installSdncDb.sh
tox.ini