From d4c4798a2548a53b63546a176f6dd350c4ad26bc Mon Sep 17 00:00:00 2001 From: Quentin Gliech Date: Thu, 25 Mar 2021 17:53:54 +0100 Subject: [PATCH] Use interpreter from $PATH instead of absolute paths in various scripts using /usr/bin/env (#9689) On NixOS, `bash` isn't under `/bin/bash` but rather in some directory in `$PATH`. Locally, I've been patching those scripts to make them work. `/usr/bin/env` seems to be the only [portable way](https://unix.stackexchange.com/questions/29608/why-is-it-better-to-use-usr-bin-env-name-instead-of-path-to-name-as-my) to use binaries from the PATH as interpreters. Signed-off-by: Quentin Gliech --- .buildkite/scripts/test_old_deps.sh | 2 +- .buildkite/scripts/test_synapse_port_db.sh | 2 +- changelog.d/9689.misc | 1 + contrib/purge_api/purge_history.sh | 2 +- contrib/purge_api/purge_remote_media.sh | 2 +- demo/clean.sh | 2 +- demo/start.sh | 2 +- demo/stop.sh | 2 +- docker/build_debian.sh | 2 +- docker/run_pg_tests.sh | 2 +- scripts-dev/check-newsfragment | 2 +- scripts-dev/config-lint.sh | 2 +- scripts-dev/generate_sample_config | 2 +- scripts-dev/lint.sh | 2 +- scripts-dev/make_full_schema.sh | 2 +- scripts-dev/next_github_number.sh | 4 ++-- test_postgresql.sh | 2 +- 17 files changed, 18 insertions(+), 17 deletions(-) create mode 100644 changelog.d/9689.misc diff --git a/.buildkite/scripts/test_old_deps.sh b/.buildkite/scripts/test_old_deps.sh index 28e6694b5d..9fe5b696b0 100755 --- a/.buildkite/scripts/test_old_deps.sh +++ b/.buildkite/scripts/test_old_deps.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # this script is run by buildkite in a plain `xenial` container; it installs the # minimal requirements for tox and hands over to the py35-old tox environment. diff --git a/.buildkite/scripts/test_synapse_port_db.sh b/.buildkite/scripts/test_synapse_port_db.sh index 9ed2177635..8914319e38 100755 --- a/.buildkite/scripts/test_synapse_port_db.sh +++ b/.buildkite/scripts/test_synapse_port_db.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Test script for 'synapse_port_db', which creates a virtualenv, installs Synapse along # with additional dependencies needed for the test (such as coverage or the PostgreSQL diff --git a/changelog.d/9689.misc b/changelog.d/9689.misc new file mode 100644 index 0000000000..a08d3482ad --- /dev/null +++ b/changelog.d/9689.misc @@ -0,0 +1 @@ +Use interpreter from `$PATH` via `/usr/bin/env` instead of absolute paths in various scripts. diff --git a/contrib/purge_api/purge_history.sh b/contrib/purge_api/purge_history.sh index e7dd5d6468..c45136ff53 100644 --- a/contrib/purge_api/purge_history.sh +++ b/contrib/purge_api/purge_history.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # this script will use the api: # https://github.com/matrix-org/synapse/blob/master/docs/admin_api/purge_history_api.rst diff --git a/contrib/purge_api/purge_remote_media.sh b/contrib/purge_api/purge_remote_media.sh index 77220d3bd5..4930d9529c 100644 --- a/contrib/purge_api/purge_remote_media.sh +++ b/contrib/purge_api/purge_remote_media.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash DOMAIN=yourserver.tld # add this user as admin in your home server: diff --git a/demo/clean.sh b/demo/clean.sh index 418ca9457e..6b809f6e83 100755 --- a/demo/clean.sh +++ b/demo/clean.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e diff --git a/demo/start.sh b/demo/start.sh index f6b5ea137f..621a5698b8 100755 --- a/demo/start.sh +++ b/demo/start.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash DIR="$( cd "$( dirname "$0" )" && pwd )" diff --git a/demo/stop.sh b/demo/stop.sh index 85a1d2c161..f9dddc5914 100755 --- a/demo/stop.sh +++ b/demo/stop.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash DIR="$( cd "$( dirname "$0" )" && pwd )" diff --git a/docker/build_debian.sh b/docker/build_debian.sh index f312f0715f..f426d2b77b 100644 --- a/docker/build_debian.sh +++ b/docker/build_debian.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # The script to build the Debian package, as ran inside the Docker image. diff --git a/docker/run_pg_tests.sh b/docker/run_pg_tests.sh index d18d1e4c8e..1fd08cb62b 100755 --- a/docker/run_pg_tests.sh +++ b/docker/run_pg_tests.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # This script runs the PostgreSQL tests inside a Docker container. It expects # the relevant source files to be mounted into /src (done automatically by the diff --git a/scripts-dev/check-newsfragment b/scripts-dev/check-newsfragment index 448cadb829..af6d32e332 100755 --- a/scripts-dev/check-newsfragment +++ b/scripts-dev/check-newsfragment @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # A script which checks that an appropriate news file has been added on this # branch. diff --git a/scripts-dev/config-lint.sh b/scripts-dev/config-lint.sh index 9132160463..8c6323e59a 100755 --- a/scripts-dev/config-lint.sh +++ b/scripts-dev/config-lint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Find linting errors in Synapse's default config file. # Exits with 0 if there are no problems, or another code otherwise. diff --git a/scripts-dev/generate_sample_config b/scripts-dev/generate_sample_config index 9cb4630a5c..02739894b5 100755 --- a/scripts-dev/generate_sample_config +++ b/scripts-dev/generate_sample_config @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Update/check the docs/sample_config.yaml diff --git a/scripts-dev/lint.sh b/scripts-dev/lint.sh index fe2965cd36..9761e97594 100755 --- a/scripts-dev/lint.sh +++ b/scripts-dev/lint.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Runs linting scripts over the local Synapse checkout # isort - sorts import statements diff --git a/scripts-dev/make_full_schema.sh b/scripts-dev/make_full_schema.sh index b8d1e636f1..bc8f978660 100755 --- a/scripts-dev/make_full_schema.sh +++ b/scripts-dev/make_full_schema.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # This script generates SQL files for creating a brand new Synapse DB with the latest # schema, on both SQLite3 and Postgres. diff --git a/scripts-dev/next_github_number.sh b/scripts-dev/next_github_number.sh index 376280025a..00e9b14569 100755 --- a/scripts-dev/next_github_number.sh +++ b/scripts-dev/next_github_number.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e @@ -6,4 +6,4 @@ set -e # next PR number. CURRENT_NUMBER=`curl -s "https://api.github.com/repos/matrix-org/synapse/issues?state=all&per_page=1" | jq -r ".[0].number"` CURRENT_NUMBER=$((CURRENT_NUMBER+1)) -echo $CURRENT_NUMBER \ No newline at end of file +echo $CURRENT_NUMBER diff --git a/test_postgresql.sh b/test_postgresql.sh index 1ffcaabd31..c10828fbbc 100755 --- a/test_postgresql.sh +++ b/test_postgresql.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # This script builds the Docker image to run the PostgreSQL tests, and then runs # the tests.