Clean shell scripts (#398)
authorLéo Andrès <leo@ndrs.fr>
Tue, 27 Mar 2018 08:35:12 +0000 (09:35 +0100)
committerChocobozzz <me@florianbigard.com>
Tue, 27 Mar 2018 08:35:12 +0000 (10:35 +0200)
22 files changed:
scripts/build/client.sh
scripts/build/server.sh
scripts/clean/client/dist.sh
scripts/clean/server/dist.sh
scripts/clean/server/test.sh
scripts/client-report.sh
scripts/danger/clean/dev.sh
scripts/danger/clean/modules.sh
scripts/danger/clean/prod.sh
scripts/dev/client.sh
scripts/dev/index.sh
scripts/dev/server.sh
scripts/generate-api-doc.sh
scripts/generate-code-contributors.sh
scripts/help.sh
scripts/play.sh
scripts/release.sh
scripts/test.sh
scripts/travis.sh
scripts/upgrade.sh
scripts/watch/client.sh
scripts/watch/server.sh

index e3137df37fcfec5c01d8b41e062e075eae7ecca9..8e2004c660d12976185fef8486111e493910aa03 100755 (executable)
@@ -1,6 +1,8 @@
-#!/bin/bash
+#!/bin/sh
 
-cd client || exit -1
+set -eu
+
+cd client
 
 rm -rf ./dist ./compiled
 
index 811da2154425093bf666f970e18ba90e33288eda..41b59a212c59e22bfd54cf98ce91143ad6b6d1d4 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 rm -rf ./dist
 
index ea6f7d6443ef34a0c9a8ba211f92cc6d66128fc0..19b89de7787f7febda59194b738bc5b5fb661007 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
 
-cd client || exit -1
+set -eu
+
+cd client
 rm -rf compiled/ dist/ dll/
index be8135b8f50b79cf50ccf63e5ef0ce8f6b3c2764..50722cb44c62633ad85bb259633ea8e5e4cbc9c1 100755 (executable)
@@ -1,3 +1,5 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 rm -rf dist/
index b56021874a86e85052df7fd28df170b49549d2e8..7d353e375488eb4e9b44da1eed2a7eb348bfb63e 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 for i in $(seq 1 6); do
   dropdb "peertube_test$i"
index 586cc2e47aa14390755e6596cebc6935f4055aad..4dd4b418b5d43dcc3a43ed7664d8921309844114 100755 (executable)
@@ -1,5 +1,7 @@
-#!/bin/bash
+#!/bin/sh
 
-cd client || exit -1
+set -eu
+
+cd client
 
 npm run webpack-bundle-analyzer ./dist/stats.json
index cd8456772eb8f1be5b1e13fa383017ac228ee111..14b45e13bd7f44c0d9949b05142f5a24f39cbc1f 100755 (executable)
@@ -1,8 +1,10 @@
 #!/bin/bash
 
+set -eu
+
 read -p "This will remove all directories and SQL tables. Are you sure? (y/*) " -n 1 -r
 echo
 
 if [[ "$REPLY" =~ ^[Yy]$ ]]; then
-  NODE_ENV=test npm run ts-node -- --type-check "./scripts/danger/clean/cleaner"
+  NODE_ENV=test npm run ts-node -- --type-check "scripts/danger/clean/cleaner"
 fi
index 99555a693578819d9887c52679237bcc23b124f4..f59d6b675a02ba2d02c2f35e25ebd8eb346436bb 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+set -eu
+
 read -p "This will remove all node server and client modules. Are you sure? " -n 1 -r
 
 if [[ "$REPLY" =~ ^[Yy]$ ]]; then
index 9103a794415f02e558638537c5e1c52cda9622ee..0675600c4a517628d427d5eb1bd2e33597321af4 100755 (executable)
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+set -eu
+
 read -p "This will remove all directories and SQL tables. Are you sure? (y/*) " -n 1 -r
 echo
 
index 6d4e7000e823c02a4709e85c5706322c16b7b477..ecd934888ae7bde88c54a51d9b53d3569106f784 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 NODE_ENV=test concurrently -k \
   "npm run watch:client" \
index 938bf60567758458df5931a8c430e55c559baa0d..dcbf62d3772be1ce76eda0b5643b2869aef66ac6 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 NODE_ENV=test concurrently -k \
   "npm run watch:client" \
index 3130f1d87254ad9c374b2bb9b14b53ffef0a5958..bfe322ce1e94ffe7fdc09d79d3af344f8d3fcce8 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 if [ ! -f "./client/dist/index.html" ]; then
   echo "client/dist/index.html does not exist, compile client files..."
index 81b80a0bef99241f8289103574553c184faa51ed..7d48db7a5288e4a08da046ba3fa3f26d2c5885c5 100755 (executable)
@@ -1,3 +1,5 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 npm run spectacle-docs -- -t support/doc/api/html support/doc/api/openapi.yaml
index eb94d418d749cdbdb55ee93efe1f4f1978957e46..9c2541cc2c83873a97dc21a4e3b5726c984725a8 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env bash
+#!/bin/sh
+
+set -eu
 
 curl -s https://api.github.com/repos/chocobozzz/peertube/contributors | \
   jq -r 'map("\\\n * [" + .login + "](" + .url + ")") | .[]' | \
index a822d5d2e7c466eae78056ed76c989f386ffb66f..318bc63f5f09404049ea927375daa1e13a9c866c 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 printf "############# PeerTube help #############\n\n"
 printf "npm run ...\n"
index ac2a10b121d7061f158fe65e7845e6439a9c85b7..69725da930b5ade1e70b8aa3cf92fb4cc93211c8 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 if [ ! -f "dist/server.js" ]; then
   echo "Missing server file (server.js)."
@@ -7,7 +9,7 @@ fi
 
 max=${1:-3}
 
-for i in $(seq 1 $max); do
+for i in $(seq 1 "$max"); do
   NODE_ENV=test NODE_APP_INSTANCE=$i node dist/server.js &
   sleep 1
 done
index 8c440975f0461702c111dae09aac79ae5c726b9c..6f4da6a29c58f2d145a422dfa005d696e1100b0f 100755 (executable)
@@ -1,11 +1,13 @@
 #!/bin/bash
 
+set -eu
+
 shutdown() {
   # Get our process group id
-  PGID=$(ps -o pgid= $$ | grep -o [0-9]*)
+  PGID=$(ps -o pgid= $$ | grep -o "[0-9]*")
 
   # Kill it in a new new process group
-  setsid kill -- -$PGID
+  setsid kill -- -"$PGID"
   exit 0
 }
 
@@ -16,7 +18,7 @@ if [ -z "$1" ]; then
   exit -1
 fi
 
-if [ -z $GITHUB_TOKEN ]; then
+if [ -z "$GITHUB_TOKEN" ]; then
   echo "Need GITHUB_TOKEN env set."
   exit -1
 fi
@@ -33,43 +35,41 @@ zip_name="peertube-$version.zip"
 
 changelog=$(awk -v version="$version" '/## v/ { printit = $2 == version }; printit;' CHANGELOG.md | grep -v "$version" | sed '1{/^$/d}')
 
-echo -e "Changelog will be:\n"
-echo "$changelog"
-echo
+printf "Changelog will be:\n%s\n" "$changelog"
 
 read -p "Are you sure to release? " -n 1 -r
 echo
 if [[ ! $REPLY =~ ^[Yy]$ ]]
 then
-  [[ "$0" = "$BASH_SOURCE" ]] && exit 0
+  exit 0
 fi
 
-cd ./client || exit -1
-npm version --no-git-tag-version --no-commit-hooks $1 || exit -1
+( cd client
+  npm version --no-git-tag-version --no-commit-hooks "$1"
+)
 
-cd ../ || exit -1
-npm version -f --no-git-tag-version --no-commit-hooks $1 || exit -1
+npm version -f --no-git-tag-version --no-commit-hooks "$1"
 
-git commit package.json client/package.json -m "Bumped to version $version" || exit -1
+git commit package.json client/package.json -m "Bumped to version $version"
 git tag -s -a "$version" -m "$version"
 
-npm run build || exit -1
-rm "./client/dist/stats.json" || exit -1
+npm run build
+rm "./client/dist/stats.json"
 
-cd ../ || exit -1
+cd ..
 
-ln -s "PeerTube" "$directory_name" || exit -1
+ln -s "PeerTube" "$directory_name"
 zip -r "PeerTube/$zip_name" "$directory_name/CREDITS.md" "$directory_name/FAQ.md" \
                             "$directory_name/LICENSE" "$directory_name/README.md" \
                             "$directory_name/client/dist/" "$directory_name/client/yarn.lock" \
                             "$directory_name/client/package.json" "$directory_name/config" \
                             "$directory_name/dist" "$directory_name/package.json" \
                             "$directory_name/scripts" "$directory_name/support" \
-                            "$directory_name/tsconfig.json" "$directory_name/yarn.lock" \
-                            || exit -1
-rm "$directory_name" || exit -1
+                            "$directory_name/tsconfig.json" "$directory_name/yarn.lock"
+
+rm "$directory_name"
 
-cd "PeerTube" || exit -1
+cd "PeerTube"
 
 git push origin --tag
 
index ee7f6e87581dd9b03750a8d41f86e3c440e5fcd8..cf88953652f512f3f4311fc9cbca54ec126acb64 100755 (executable)
@@ -1,6 +1,8 @@
-#!/bin/bash
+#!/bin/sh
 
-npm run build:server || exit -1
-npm run travis -- lint || exit -1
+set -eu
+
+npm run build:server
+npm run travis -- lint
 
 mocha --exit --require ts-node/register/type-check --bail server/tests/index.ts
index ea0dc869979934149bc4fb700e6bd1f1ced6c70f..79be234935849ce6c95618806c2b04ecbba19dca 100755 (executable)
@@ -1,4 +1,6 @@
-#!/bin/bash
+#!/bin/sh
+
+set -eu
 
 if [ $# -eq 0 ]; then
     echo "Need test suite argument."
@@ -21,9 +23,9 @@ elif [ "$1" = "api-slow" ]; then
     npm run build:server
     mocha --timeout 5000 --exit --require ts-node/register/type-check --bail server/tests/api/index-slow.ts
 elif [ "$1" = "lint" ]; then
-    cd client || exit -1
-    npm run lint || exit -1
+    ( cd client
+      npm run lint
+    )
 
-    cd .. || exit -1
-    npm run tslint -- --project ./tsconfig.json -c ./tslint.json server.ts "server/**/*.ts" "shared/**/*.ts" || exit -1
+    npm run tslint -- --project ./tsconfig.json -c ./tslint.json server.ts "server/**/*.ts" "shared/**/*.ts"
 fi
index bd90ce56020133992ab3cb10574d9d9427a59cd6..2be7b49df90a2d09f0fa5fee8d473ea55c2669a4 100755 (executable)
@@ -1,7 +1,6 @@
-#!/usr/bin/env bash
+#!/bin/sh
 
-# Strict mode
-set -e
+set -eu
 
 # Backup database
 SQL_BACKUP_PATH="/var/www/peertube/backup/sql-peertube_prod-$(date +\"%Y%m%d-%H%M\").bak" 
@@ -11,19 +10,18 @@ pg_dump -U peertube -W -h localhost -F c peertube_prod -f "$SQL_BACKUP_PATH"
 # Get and Display the Latest Version
 VERSION=$(curl -s https://api.github.com/repos/chocobozzz/peertube/releases/latest | grep tag_name | cut -d '"' -f 4)
 echo "Latest Peertube version is $VERSION"
-wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" -O /var/www/peertube/versions/peertube-${VERSION}.zip
+wget -q "https://github.com/Chocobozzz/PeerTube/releases/download/${VERSION}/peertube-${VERSION}.zip" -O "/var/www/peertube/versions/peertube-${VERSION}.zip"
 cd /var/www/peertube/versions
-unzip -o peertube-${VERSION}.zip
-rm -f peertube-${VERSION}.zip
+unzip -o "peertube-${VERSION}.zip"
+rm -f "peertube-${VERSION}.zip"
 
 # Upgrade Scripts
 rm -rf /var/www/peertube/peertube-latest
-ln -s /var/www/peertube/versions/peertube-${VERSION} /var/www/peertube/peertube-latest
-cd  /var/www/peertube/peertube-latest
+ln -s "/var/www/peertube/versions/peertube-${VERSION}" /var/www/peertube/peertube-latest
+cd /var/www/peertube/peertube-latest
 yarn install --production --pure-lockfile 
 cp /var/www/peertube/peertube-latest/config/default.yaml /var/www/peertube/config/default.yaml
 
 echo "Differences in configuration files..."
-diff /var/www/peertube/versions/peertube-${VERSION}/config/production.yaml.example /var/www/peertube/config/production.yaml
+diff "/var/www/peertube/versions/peertube-${VERSION}/config/production.yaml.example" /var/www/peertube/config/production.yaml
 
-exit 0
index 2481e2269585e2cad3b18480692f24d6cff06bbe..710c8703704b4ea07b83c66f2dd4cdabb95f7628 100755 (executable)
@@ -1,5 +1,7 @@
-#!/usr/bin/env sh
+#!/bin/sh
 
-cd client || exit -1
+set -eu
+
+cd client
 
 npm run ng -- server --hmr --host 0.0.0.0 --disable-host-check --port 3000
index 448f695521c31bb1eb8856f5b7c825c67f624b6f..42a594d857add582352fe15254586ab36ef84760 100755 (executable)
@@ -1,4 +1,6 @@
-#!/usr/bin/env sh
+#!/bin/sh
+
+set -eu
 
 NODE_ENV=test concurrently -k \
   "npm run tsc -- --sourceMap && npm run nodemon -- --delay 2 --watch ./dist dist/server" \