]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - scripts/openapi-clients.sh
2 # Required environment vars
3 # =========================
5 # A ':' delimited list of the client lib languages to be generated
7 # The user that will be used to push/pull from the APIs repos
11 # A personal access token for github or gilab for pushing to repos
12 # !!!This is a secret and shouldn't be logged publicly!!!
14 # (Optional environment vars)
15 # ===========================
17 # A message to use when committing to the lib repo
19 # Will be used for building the URL to the repo and path to checkout.
20 # !!! End with a slash "/", otherwise the prefix will be tacked onto the language
22 # The username to use building the URL to the git repo.
23 # Default: API_GIT_USER
25 # Whoever's hosting the repo e.g gitlab.com, github.com, etc.
26 # Default: framagit.org
28 # Unofficial bash strict mode
29 # https://web.archive.org/web/20190115051613/https://redsymbol.net/articles/unofficial-bash-strict-mode/
34 API_URL_USERNAME
="${API_URL_USERNAME:-$API_GIT_USER}"
35 API_PATH_PREFIX
="${API_PATH_PREFIX:-}"
36 API_REPO_HOST
=${API_REPO_HOST:-framagit.org}
38 echo "API_GIT_USER='${API_GIT_USER}'"
39 echo "API_URL_USERNAME='${API_URL_USERNAME}'"
40 echo "API_LANGS='${API_LANGS}'"
42 git config
--global user.email
"${API_GIT_EMAIL}"
43 git config
--global user.name
"${API_GIT_USER}"
45 for lang
in ${API_LANGS//:/ } ; do
47 echo "Generating client API libs for $lang"
49 lang_dir
="support/openapi/${lang}"
51 out_dir_prefix
="dist/api/${API_PATH_PREFIX}"
52 out_dir
="${out_dir_prefix}/${lang}"
53 git_repo_id
="${API_PATH_PREFIX}${lang}"
54 host_path
="${API_REPO_HOST}/${API_URL_USERNAME}/${git_repo_id}.git"
55 git_remote
="https://${API_GIT_USER}:${GIT_TOKEN}@${host_path}"
56 if ! [ -e "$out_dir" ] ; then
57 # Make sure the prefix exists before cloning the repo
58 mkdir -p "${out_dir_prefix}"
59 git clone
"https://${host_path}" "$out_dir"
62 npx openapi
-generator generate \
63 -i support
/doc
/api
/openapi.yaml \
64 -c "${lang_dir}/def.yaml" \
67 --git-host "${API_REPO_HOST}" \
68 --git-user-id "${API_URL_USERNAME}" \
69 --git-repo-id "${git_repo_id}" \
72 # Commit and push changes to the remote
74 git remote
set-url origin
"$git_remote"
75 # Make sure something has changed
76 if [[ $(git status -s | wc -l) = 0 ]] ; then
77 echo "No changes from previous version"
81 git commit
-m "${API_COMMIT_MSG:-"Minor update $lang"}"