Page MenuHomePhabricator

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

Authored by Fabien on Mon, Aug 26, 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
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Fabien created this revision.Mon, Aug 26, 17:21
Herald added a reviewer: Restricted Project. · View Herald TranscriptMon, Aug 26, 17:21
deadalnix accepted this revision.Tue, Aug 27, 13:22
This revision is now accepted and ready to land.Tue, Aug 27, 13:22
Fabien updated this revision to Diff 11016.Thu, Aug 29, 06:20

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