From 9ea3bb8fd5bf1a78108cc01167ab41041ffa6cc0 Mon Sep 17 00:00:00 2001 From: Pierre Millot Date: Thu, 13 Jan 2022 16:39:10 +0100 Subject: [PATCH 1/4] chore: make the script verbose by adding 'verbose' at the end of a command --- package.json | 6 +++--- scripts/builds/clients.sh | 21 ++++++++++++--------- scripts/generate.sh | 22 ++++++++++++---------- scripts/multiplexer.sh | 13 +++++++++---- scripts/post-gen/global.sh | 22 ++++++++++++---------- scripts/post-gen/java.sh | 21 ++++++++++++--------- scripts/post-gen/javascript.sh | 27 ++++++++++++++------------- test.sh | 3 +++ 8 files changed, 77 insertions(+), 58 deletions(-) create mode 100755 test.sh diff --git a/package.json b/package.json index e172e9bc4b..060dcb8f73 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "tests/" ], "scripts": { - "build:clients": "./scripts/multiplexer.sh ./scripts/builds/clients.sh ${0:-all} ${1:-all}", + "build:clients": "./scripts/multiplexer.sh ${2:-nonverbose} ./scripts/builds/clients.sh ${0:-all} ${1:-all}", "build:specs": "./scripts/builds/specs.sh ${0:-all} ${1:-yaml}", "build": "yarn build:specs && yarn build:clients", "clean": "rm -rf **/dist **/build **/node_modules", @@ -20,8 +20,8 @@ "docker": "docker exec dev yarn $*", "lint": "eslint --ext=ts .", "post:generate": "./scripts/post-gen/global.sh", - "generate": "./scripts/multiplexer.sh ./scripts/generate.sh ${0:-all} ${1:-all} && yarn post:generate", - "playground": "./scripts/multiplexer.sh ./scripts/playground.sh ${0:-javascript} ${1:-search}", + "generate": "./scripts/multiplexer.sh ${2:-nonverbose} ./scripts/generate.sh ${0:-all} ${1:-all} && yarn post:generate", + "playground": "./scripts/multiplexer.sh ${2:-nonverbose} ./scripts/playground.sh ${0:-javascript} ${1:-search}", "specs:format": "yarn prettier --write specs", "specs:lint": "eslint --ext=yml specs/ .github/" }, diff --git a/scripts/builds/clients.sh b/scripts/builds/clients.sh index 1d9d3c1bf7..aabb944e43 100755 --- a/scripts/builds/clients.sh +++ b/scripts/builds/clients.sh @@ -19,16 +19,19 @@ build_client(){ if [[ $lang == 'javascript' ]]; then yarn workspace $package build elif [[ $lang == 'java' ]]; then - set +e - - log=$(mvn clean install -f clients/$package/pom.xml) - - if [[ $? != 0 ]]; then - echo "$log" - exit 1 + CMD="mvn clean install -f clients/$package/pom.xml" + if [[ $VERBOSE == "true" ]]; then + $CMD + else + set +e + log=$($CMD) + + if [[ $? != 0 ]]; then + echo "$log" + exit 1 + fi + set -e fi - - set -e fi } diff --git a/scripts/generate.sh b/scripts/generate.sh index 6468568931..28367cc3e4 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -22,18 +22,20 @@ run_pre_gen() { } generate_client() { - set +e - echo "> Generating code for $generator..." - - log=$(yarn openapi-generator-cli generate --generator-key "$generator") - - if [[ $? != 0 ]]; then - echo "$log" - exit 1 + CMD='yarn openapi-generator-cli generate --generator-key "$generator"' + if [[ $VERBOSE == "true" ]]; then + $CMD + else + set +e + log=$($CMD) + + if [[ $? != 0 ]]; then + echo "$log" + exit 1 + fi + set -e fi - - set -e } # Run the post generation script if it exists. diff --git a/scripts/multiplexer.sh b/scripts/multiplexer.sh index fdcbff16bf..4330019cf9 100755 --- a/scripts/multiplexer.sh +++ b/scripts/multiplexer.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Call this script with multiplexer.sh +# Call this script with multiplexer.sh # to run the cmd for all the required lang-client combination if [[ ! $CI ]] && [[ ! $DOCKER ]]; then @@ -15,9 +15,14 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)" # Move to the root (easier to locate other scripts) cd ${DIR}/.. -CMD=$1 -LANGUAGE=$2 -CLIENT=$3 +CMD=${@:2:$#-3} # all arguments but the last 2 and first one +LANGUAGE=${@: -2:1} # before last argument +CLIENT=${@: -1} # last argument + +if [[ $1 == "verbose" ]]; then + export VERBOSE=true + echo "Verbose mode" +fi if [[ $CMD == "./scripts/playground.sh" ]] && ([[ $LANGUAGE == "all" ]] || [[ $CLIENT == "all" ]]); then echo "You cannot use 'all' when running the playground, please specify the language and client" diff --git a/scripts/post-gen/global.sh b/scripts/post-gen/global.sh index 99e62dcde7..90f28574f4 100755 --- a/scripts/post-gen/global.sh +++ b/scripts/post-gen/global.sh @@ -11,18 +11,20 @@ if [[ ! $DOCKER ]]; then fi format_specs() { - set +e - echo "> Formatting specs..." - - log=$(yarn specs:format) - - if [[ $? != 0 ]]; then - echo "$log" - exit 1 + CMD="yarn specs:format" + if [[ $VERBOSE == "true" ]]; then + $CMD + else + set +e + log=$($CMD) + + if [[ $? != 0 ]]; then + echo "$log" + exit 1 + fi + set -e fi - - set -e } format_specs diff --git a/scripts/post-gen/java.sh b/scripts/post-gen/java.sh index 13f1afb8d5..9751f8f2b5 100755 --- a/scripts/post-gen/java.sh +++ b/scripts/post-gen/java.sh @@ -15,8 +15,6 @@ find "$CLIENT" -type f -name "*.java" | xargs sed -i -e 's~= {}~= new Object()~g echo "package com.algolia.model;public class OneOfintegerstring {}" > $CLIENT/algoliasearch-core/com/algolia/model/OneOfintegerstring.java format_client() { - set +e - echo "> Formatting $GENERATOR..." # Download the formatter if not present and run it @@ -35,14 +33,19 @@ format_client() { --add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED \ -jar dist/$javaFormatter -r - log=$(yarn prettier --write $CLIENT/**/*.java) - - if [[ $? != 0 ]]; then - echo "$log" - exit 1 + CMD="yarn prettier --write $CLIENT/**/*.java" + if [[ $VERBOSE == "true" ]]; then + $CMD + else + set +e + log=$($CMD) + + if [[ $? != 0 ]]; then + echo "$log" + exit 1 + fi + set -e fi - - set -e } format_client diff --git a/scripts/post-gen/javascript.sh b/scripts/post-gen/javascript.sh index b3403697a1..1f27a99b6f 100755 --- a/scripts/post-gen/javascript.sh +++ b/scripts/post-gen/javascript.sh @@ -9,24 +9,25 @@ mkdir -p $CLIENT/utils cp -R clients/algoliasearch-client-javascript/utils/ $CLIENT/ lint_client() { - set +e - echo "> Linting ${GENERATOR}..." - - log=$(eslint --ext=ts ${CLIENT} --fix) - - if [[ $? != 0 ]]; then - # jsdoc/require-hyphen-before-param-description fails to lint more than - # 6 parameters, we re-run the script if failed to lint the rest - eslint --ext=ts ${CLIENT} --fix + CMD="yarn eslint --ext=ts ${CLIENT} --fix" + if [[ $VERBOSE == "true" ]]; then + $CMD + else + set +e + log=$($CMD) if [[ $? != 0 ]]; then - exit 1 + # jsdoc/require-hyphen-before-param-description fails to lint more than + # 6 parameters, we re-run the script if failed to lint the rest + $CMD + + if [[ $? != 0 ]]; then + exit 1 + fi fi + set -e fi - - set -e - } lint_client diff --git a/test.sh b/test.sh new file mode 100755 index 0000000000..39eb2b7340 --- /dev/null +++ b/test.sh @@ -0,0 +1,3 @@ +export VERBOSE=true + +./scripts/builds/clients.sh From 89301732f223d94146749682a35fcad5384e8147 Mon Sep 17 00:00:00 2001 From: Pierre Millot Date: Thu, 13 Jan 2022 17:15:52 +0100 Subject: [PATCH 2/4] fix --- scripts/generate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/generate.sh b/scripts/generate.sh index 28367cc3e4..13267a04aa 100755 --- a/scripts/generate.sh +++ b/scripts/generate.sh @@ -23,7 +23,7 @@ run_pre_gen() { generate_client() { echo "> Generating code for $generator..." - CMD='yarn openapi-generator-cli generate --generator-key "$generator"' + CMD="yarn openapi-generator-cli generate --generator-key $generator" if [[ $VERBOSE == "true" ]]; then $CMD else From aa1b1627a3a18e0adf1a1be2f8115ecab29c8f88 Mon Sep 17 00:00:00 2001 From: Pierre Millot Date: Thu, 13 Jan 2022 17:59:21 +0100 Subject: [PATCH 3/4] remove test file --- test.sh | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 test.sh diff --git a/test.sh b/test.sh deleted file mode 100755 index 39eb2b7340..0000000000 --- a/test.sh +++ /dev/null @@ -1,3 +0,0 @@ -export VERBOSE=true - -./scripts/builds/clients.sh From e551ccee2613a58b2e3312739c3b851b053f5dd8 Mon Sep 17 00:00:00 2001 From: Pierre Millot Date: Fri, 14 Jan 2022 11:03:38 +0100 Subject: [PATCH 4/4] thank you CI for finding bugs --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 1001a05cb8..ad7d944930 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,8 @@ "build:specs": "./scripts/builds/specs.sh ${0:-all} ${1:-yaml}", "build": "yarn build:specs && yarn build:clients", "clean": "rm -rf **/dist **/build **/node_modules", - "cts:generate": "yarn workspace tests build && ./scripts/multiplexer.sh yarn workspace tests generate ${0:-all} ${1:-all} && yarn workspace tests lint:fix", - "cts:test": "./scripts/multiplexer.sh ./scripts/runCTS.sh ${0:-javascript} all", + "cts:generate": "yarn workspace tests build && ./scripts/multiplexer.sh ${2:-nonverbose} yarn workspace tests generate ${0:-all} ${1:-all} && yarn workspace tests lint:fix", + "cts:test": "./scripts/multiplexer.sh ${1:-nonverbose} ./scripts/runCTS.sh ${0:-javascript} all", "docker:build": "./scripts/docker/build.sh", "docker:clean": "docker stop dev; docker rm -f dev; docker image rm -f api-clients-automation", "docker:mount": "./scripts/docker/mount.sh",