Page MenuHomePhabricator

[LINTER] Enforce using `#!/usr/bin/env bash` for shell scripts
ClosedPublic

Authored by Fabien on Aug 26 2019, 17:21.

Details

Summary

Update the shell scripts to always have a shebang and use whether bash:

#!/usr/bin/env bash

or the system shell:

#!/bin/sh

Other forms will throw an arcanist error at lint time.

Backport of core PR13320, PR13510 and PR14831
https://github.com/bitcoin/bitcoin/pull/13320/files
https://github.com/bitcoin/bitcoin/pull/13510/files
https://github.com/bitcoin/bitcoin/pull/14831/files

Depends on D3945.

Test Plan

Edit a shell script to have a bas shebang then run:

arc lint

Ensure the linter catches the error.

Should return no error (requires D3946 to have zero output):

arc lint --everything

Diff Detail

Repository
rABC Bitcoin ABC
Branch
linter_bash_shebang
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 7239
Build 12523: Bitcoin ABC Buildbot (legacy)
Build 12522: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Aug 27 2019, 13:22

Rebase for arcanist cache.
Use a separated set -e instead of adding it to the shebang to make shellckeck happy.