diff --git a/README.md b/README.md index 017c484c89..ebbc0d9562 100644 --- a/README.md +++ b/README.md @@ -116,10 +116,7 @@ npm install ## (re) Generating code ```console -cd ../ -git clone https://github.com/kubernetes-client/gen -cd javascript -../gen/openapi/typescript.sh src/gen settings +npm run generate ``` ## Formatting diff --git a/generate-client.sh b/generate-client.sh new file mode 100755 index 0000000000..a5fd264304 --- /dev/null +++ b/generate-client.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -o errexit +set -o nounset +set -o pipefail + +. settings + +if [[ -z ${GEN_ROOT:-} ]]; then + : "${GEN_COMMIT?Need to set GEN_COMMIT to kubernetes-client/gen commit}" + TEMP_FOLDER=$(mktemp -d) + trap "rm -rf ${TEMP_FOLDER}" EXIT SIGINT + + GEN_ROOT="${TEMP_FOLDER}/gen" + echo ">>> Cloning gen repo" + git clone --recursive https://github.com/kubernetes-client/gen.git "${GEN_ROOT}" + (cd ${GEN_ROOT} && git checkout ${GEN_COMMIT}) +else + echo ">>> Reusing gen repo at ${GEN_ROOT}" +fi + +TYPESCRIPT="${GEN_ROOT}/openapi/typescript.sh" +echo ">>> Running ${TYPESCRIPT}" +${TYPESCRIPT} src/gen settings +echo ">>> Done." diff --git a/package.json b/package.json index cc056e5951..dd2c64e43c 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "lint": "tslint --project \".\" && prettier --check './src/**/*.ts' && tslint --project \"./examples/typescript\"", "clean": "rm -Rf node_modules/ dist/", "build": "tsc", + "generate": "./generate-client.sh", "watch": "tsc --watch", "test": "nyc mocha", "prepare": "npm run build" diff --git a/settings b/settings index 19fabf62be..c05a60a2f3 100644 --- a/settings +++ b/settings @@ -14,6 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +# kubernetes-client/gen commit to use for code generation. +export GEN_COMMIT=7959939 + +# GitHub username/organization to clone kubernetes repo from. +export USERNAME=kubernetes + # Kubernetes branch to get the OpenAPI spec from. export KUBERNETES_BRANCH="release-1.13"