aboutsummaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/build/client.sh91
-rwxr-xr-xscripts/ci.sh4
-rw-r--r--scripts/create-import-video-file-job.ts2
-rwxr-xr-xscripts/create-transcoding-job.ts2
-rwxr-xr-xscripts/dev/index.sh4
-rwxr-xr-xscripts/generate-code-contributors.ts2
-rwxr-xr-xscripts/openapi-clients.sh81
-rwxr-xr-xscripts/openapi-peertube-version.sh5
8 files changed, 177 insertions, 14 deletions
diff --git a/scripts/build/client.sh b/scripts/build/client.sh
index d95bb9574..e7475f56c 100755
--- a/scripts/build/client.sh
+++ b/scripts/build/client.sh
@@ -2,6 +2,8 @@
2 2
3set -eu 3set -eu
4 4
5declare -A languages
6
5pre_build_hook () { 7pre_build_hook () {
6 mkdir "./src/pending_locale" > /dev/null || true 8 mkdir "./src/pending_locale" > /dev/null || true
7 mv ./src/locale/angular.*.xlf "./src/pending_locale" 9 mv ./src/locale/angular.*.xlf "./src/pending_locale"
@@ -37,22 +39,97 @@ post_build_hook
37 39
38# Don't build other languages if --light arg is provided 40# Don't build other languages if --light arg is provided
39if [ -z ${1+x} ] || [ "$1" != "--light" ]; then 41if [ -z ${1+x} ] || [ "$1" != "--light" ]; then
40 if [ ! -z ${1+x} ] && [ "$1" == "--light-fr" ]; then 42 if [ ! -z ${1+x} ] && [ "$1" == "--light-hu" ]; then
41 languages=("fr-FR") 43 languages=(["hu"]="hu-HU")
44 elif [ ! -z ${1+x} ] && [ "$1" == "--light-th" ]; then
45 languages=(["th"]="th-TH")
46 elif [ ! -z ${1+x} ] && [ "$1" == "--light-fi" ]; then
47 languages=(["fi"]="fi-FI")
48 elif [ ! -z ${1+x} ] && [ "$1" == "--light-nl" ]; then
49 languages=(["nl"]="nl-NL")
50 elif [ ! -z ${1+x} ] && [ "$1" == "--light-gd" ]; then
51 languages=(["gd"]="gd")
52 elif [ ! -z ${1+x} ] && [ "$1" == "--light-el" ]; then
53 languages=(["el"]="el-GR")
54 elif [ ! -z ${1+x} ] && [ "$1" == "--light-es" ]; then
55 languages=(["es"]="es-ES")
56 elif [ ! -z ${1+x} ] && [ "$1" == "--light-oc" ]; then
57 languages=(["oc"]="oc")
58 elif [ ! -z ${1+x} ] && [ "$1" == "--light-pt" ]; then
59 languages=(["pt"]="pt-BR")
60 elif [ ! -z ${1+x} ] && [ "$1" == "--light-pt-PT" ]; then
61 languages=(["pt-PT"]="pt-PT")
62 elif [ ! -z ${1+x} ] && [ "$1" == "--light-sv" ]; then
63 languages=(["sv"]="sv-SE")
64 elif [ ! -z ${1+x} ] && [ "$1" == "--light-pl" ]; then
65 languages=(["pl"]="pl-PL")
66 elif [ ! -z ${1+x} ] && [ "$1" == "--light-ru" ]; then
67 languages=(["ru"]="ru-RU")
68 elif [ ! -z ${1+x} ] && [ "$1" == "--light-zh-Hans" ]; then
69 languages=(["zh-Hans"]="zh-Hans-CN")
70 elif [ ! -z ${1+x} ] && [ "$1" == "--light-zh-Hant" ]; then
71 languages=(["zh-Hant"]="zh-Hant-TW")
72 elif [ ! -z ${1+x} ] && [ "$1" == "--light-fr" ]; then
73 languages=(["fr"]="fr-FR")
74 elif [ ! -z ${1+x} ] && [ "$1" == "--light-ja" ]; then
75 languages=(["ja"]="ja-JP")
76 elif [ ! -z ${1+x} ] && [ "$1" == "--light-eu" ]; then
77 languages=(["eu"]="eu-ES")
78 elif [ ! -z ${1+x} ] && [ "$1" == "--light-ca" ]; then
79 languages=(["ca"]="ca-ES")
80 elif [ ! -z ${1+x} ] && [ "$1" == "--light-cs" ]; then
81 languages=(["cs"]="cs-CZ")
82 elif [ ! -z ${1+x} ] && [ "$1" == "--light-eo" ]; then
83 languages=(["eo"]="eo")
84 elif [ ! -z ${1+x} ] && [ "$1" == "--light-de" ]; then
85 languages=(["de"]="de-DE")
86 elif [ ! -z ${1+x} ] && [ "$1" == "--light-it" ]; then
87 languages=(["it"]="it-IT")
42 else 88 else
43 # Supported languages 89 # Supported languages
44 languages=( 90 languages=(
45 "fi-FI" "nl-NL" "gd" "el-GR" "es-ES" "oc" "pt-BR" "pt-PT" "sv-SE" "pl-PL" "ru-RU" "zh-Hans-CN" "zh-Hant-TW" 91 ["hu"]="hu-HU"
46 "fr-FR" "ja-JP" "eu-ES" "ca-ES" "cs-CZ" "eo" "de-DE" "it-IT" 92 ["th"]="th-TH"
93 ["fi"]="fi-FI"
94 ["nl"]="nl-NL"
95 ["gd"]="gd"
96 ["el"]="el-GR"
97 ["es"]="es-ES"
98 ["oc"]="oc"
99 ["pt"]="pt-BR"
100 ["pt-PT"]="pt-PT"
101 ["sv"]="sv-SE"
102 ["pl"]="pl-PL"
103 ["ru"]="ru-RU"
104 ["zh-Hans"]="zh-Hans-CN"
105 ["zh-Hant"]="zh-Hant-TW"
106 ["fr"]="fr-FR"
107 ["ja"]="ja-JP"
108 ["eu"]="eu-ES"
109 ["ca"]="ca-ES"
110 ["cs"]="cs-CZ"
111 ["eo"]="eo"
112 ["de"]="de-DE"
113 ["it"]="it-IT"
47 ) 114 )
48 fi 115 fi
49 116
50 for lang in "${languages[@]}"; do 117 for key in "${!languages[@]}"; do
118 lang=${languages[$key]}
119
51 # TODO: remove when the project will use runtime translations 120 # TODO: remove when the project will use runtime translations
52 pre_build_hook "$lang" 121 pre_build_hook "$lang"
53 122
54 npm run ng build -- --prod --i18n-file "./src/locale/angular.$lang.xlf" --i18n-format xlf --i18n-locale "$lang" \ 123 npm run ng build -- --prod --configuration="$lang" --output-path "dist/build"
55 --output-path "dist/$lang/" --deploy-url "/client/$lang/" 124
125 # If --localize is not used
126 mv "dist/build/$key" "dist/$lang"
127 rmdir "dist/build"
128
129 # If --localize is used
130 # if [ ! "$lang" = "$key" ]; then
131 # mv "dist/$key" "dist/$lang"
132 # fi
56 133
57 # Do not duplicate assets 134 # Do not duplicate assets
58 rm -r "./dist/$lang/assets" 135 rm -r "./dist/$lang/assets"
diff --git a/scripts/ci.sh b/scripts/ci.sh
index d111b7447..aea009d9f 100755
--- a/scripts/ci.sh
+++ b/scripts/ci.sh
@@ -12,7 +12,7 @@ killall -q peertube || true
12perl -0777 -i -pe 's#proxy:(\n\s+)enabled: false\n\s+url: ""#proxy:$1enabled: true$1url: "http://188.165.225.149:7899"#' config/test.yaml 12perl -0777 -i -pe 's#proxy:(\n\s+)enabled: false\n\s+url: ""#proxy:$1enabled: true$1url: "http://188.165.225.149:7899"#' config/test.yaml
13 13
14if [ "$1" = "misc" ]; then 14if [ "$1" = "misc" ]; then
15 npm run build -- --light-fr 15 npm run build -- --light
16 mocha --timeout 5000 --exit --require ts-node/register --require tsconfig-paths/register --bail server/tests/client.ts \ 16 mocha --timeout 5000 --exit --require ts-node/register --require tsconfig-paths/register --bail server/tests/client.ts \
17 server/tests/feeds/index.ts \ 17 server/tests/feeds/index.ts \
18 server/tests/misc-endpoints.ts \ 18 server/tests/misc-endpoints.ts \
@@ -35,7 +35,7 @@ elif [ "$1" = "api-4" ]; then
35 npm run build:server 35 npm run build:server
36 sh ./server/tests/api/ci-4.sh 2 36 sh ./server/tests/api/ci-4.sh 2
37elif [ "$1" = "lint" ]; then 37elif [ "$1" = "lint" ]; then
38 npm run tslint -- --project ./tsconfig.json -c ./tslint.json server.ts "server/**/*.ts" "shared/**/*.ts" 38 npm run eslint -- --ext .ts "server/**/*.ts" "shared/**/*.ts"
39 npm run swagger-cli -- validate support/doc/api/openapi.yaml 39 npm run swagger-cli -- validate support/doc/api/openapi.yaml
40 40
41 ( cd client 41 ( cd client
diff --git a/scripts/create-import-video-file-job.ts b/scripts/create-import-video-file-job.ts
index 204337d55..37738ca40 100644
--- a/scripts/create-import-video-file-job.ts
+++ b/scripts/create-import-video-file-job.ts
@@ -38,6 +38,6 @@ async function run () {
38 } 38 }
39 39
40 await JobQueue.Instance.init() 40 await JobQueue.Instance.init()
41 await JobQueue.Instance.createJob({ type: 'video-file-import', payload: dataInput }) 41 await JobQueue.Instance.createJobWithPromise({ type: 'video-file-import', payload: dataInput })
42 console.log('Import job for video %s created.', video.uuid) 42 console.log('Import job for video %s created.', video.uuid)
43} 43}
diff --git a/scripts/create-transcoding-job.ts b/scripts/create-transcoding-job.ts
index 27170299d..fec58da2e 100755
--- a/scripts/create-transcoding-job.ts
+++ b/scripts/create-transcoding-job.ts
@@ -72,7 +72,7 @@ async function run () {
72 await JobQueue.Instance.init() 72 await JobQueue.Instance.init()
73 73
74 for (const d of dataInput) { 74 for (const d of dataInput) {
75 await JobQueue.Instance.createJob({ type: 'video-transcoding', payload: d }) 75 await JobQueue.Instance.createJobWithPromise({ type: 'video-transcoding', payload: d })
76 console.log('Transcoding job for video %s created.', video.uuid) 76 console.log('Transcoding job for video %s created.', video.uuid)
77 } 77 }
78} 78}
diff --git a/scripts/dev/index.sh b/scripts/dev/index.sh
index d221d2fc8..9e89516b8 100755
--- a/scripts/dev/index.sh
+++ b/scripts/dev/index.sh
@@ -3,5 +3,5 @@
3set -eu 3set -eu
4 4
5NODE_ENV=test npm run concurrently -- -k \ 5NODE_ENV=test npm run concurrently -- -k \
6 "npm run dev:client -- --skip-server" \ 6 "sh scripts/dev/client.sh --skip-server" \
7 "npm run dev:server" 7 "sh scripts/dev/server.sh"
diff --git a/scripts/generate-code-contributors.ts b/scripts/generate-code-contributors.ts
index f1922a20e..7a43ba448 100755
--- a/scripts/generate-code-contributors.ts
+++ b/scripts/generate-code-contributors.ts
@@ -33,7 +33,7 @@ async function run () {
33 console.log('\n\n# Icons\n') 33 console.log('\n\n# Icons\n')
34 console.log(' * [Robbie Pearce](https://robbiepearce.com/softies/)') 34 console.log(' * [Robbie Pearce](https://robbiepearce.com/softies/)')
35 console.log(' * [Fork-Awesome](https://github.com/ForkAwesome/Fork-Awesome)') 35 console.log(' * [Fork-Awesome](https://github.com/ForkAwesome/Fork-Awesome)')
36 console.log(' * playlist add by Google') 36 console.log(' * playlist add by Material UI')
37 } 37 }
38} 38}
39 39
diff --git a/scripts/openapi-clients.sh b/scripts/openapi-clients.sh
new file mode 100755
index 000000000..b031ceac1
--- /dev/null
+++ b/scripts/openapi-clients.sh
@@ -0,0 +1,81 @@
1#!/bin/bash
2# Required environment vars
3# =========================
4# API_LANGS
5# A ':' delimited list of the client lib languages to be generated
6# API_GIT_USER
7# The user that will be used to push/pull from the APIs repos
8# API_GIT_EMAIL
9# The git email
10# GIT_TOKEN
11# A personal access token for github or gilab for pushing to repos
12# !!!This is a secret and shouldn't be logged publicly!!!
13
14# (Optional environment vars)
15# ===========================
16# API_COMMIT_MSG
17# A message to use when committing to the lib repo
18# API_PATH_PREFIX
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
21# API_URL_USERNAME
22# The username to use building the URL to the git repo.
23# Default: API_GIT_USER
24# API_REPO_HOST
25# Whoever's hosting the repo e.g gitlab.com, github.com, etc.
26# Default: framagit.org
27
28# Unofficial bash strict mode
29# https://web.archive.org/web/20190115051613/https://redsymbol.net/articles/unofficial-bash-strict-mode/
30set -euo pipefail
31IFS=$'\n\t '
32
33# Set default values
34API_URL_USERNAME="${API_URL_USERNAME:-$API_GIT_USER}"
35API_PATH_PREFIX="${API_PATH_PREFIX:-}"
36API_REPO_HOST=${API_REPO_HOST:-framagit.org}
37
38echo "API_GIT_USER='${API_GIT_USER}'"
39echo "API_URL_USERNAME='${API_URL_USERNAME}'"
40echo "API_LANGS='${API_LANGS}'"
41
42git config --global user.email "${API_GIT_EMAIL}"
43git config --global user.name "${API_GIT_USER}"
44
45for lang in ${API_LANGS//:/ } ; do
46(
47 echo "Generating client API libs for $lang"
48
49 out_dir_prefix="dist/api/${API_PATH_PREFIX}"
50 out_dir="${out_dir_prefix}/${lang}"
51 git_repo_id="${API_PATH_PREFIX}${lang}"
52 host_path="${API_REPO_HOST}/${API_URL_USERNAME}/${git_repo_id}.git"
53 git_remote="https://${API_GIT_USER}:${GIT_TOKEN}@${host_path}"
54 if ! [ -e "$out_dir" ] ; then
55 # Make sure the prefix exists before cloning the repo
56 mkdir -p "${out_dir_prefix}"
57 git clone "https://${host_path}" "$out_dir"
58 fi
59
60 npx openapi-generator generate \
61 -i support/doc/api/openapi.yaml \
62 -c "support/openapi/${lang}.yaml" \
63 -g "$lang" \
64 --git-host "${API_REPO_HOST}" \
65 --git-user-id "${API_URL_USERNAME}" \
66 --git-repo-id "${git_repo_id}" \
67 -o "${out_dir}"
68
69 # Commit and push changes to the remote
70 cd "$out_dir"
71 git remote set-url origin "$git_remote"
72 # Make sure something has changed
73 if [[ $(git status -s | wc -l) = 0 ]] ; then
74 echo "No changes from previous version"
75 continue
76 fi
77 git add .
78 git commit -m "${API_COMMIT_MSG:-"Minor update $lang"}"
79 git push
80)
81done
diff --git a/scripts/openapi-peertube-version.sh b/scripts/openapi-peertube-version.sh
index 4eb481e64..49154a5f3 100755
--- a/scripts/openapi-peertube-version.sh
+++ b/scripts/openapi-peertube-version.sh
@@ -4,3 +4,8 @@
4PACKAGE_VERSION=$(node -p "require('./package.json').version") 4PACKAGE_VERSION=$(node -p "require('./package.json').version")
5 5
6sed -i "s/\(^\s*\)version: .*/\1version: $PACKAGE_VERSION/" ./support/doc/api/openapi.yaml 6sed -i "s/\(^\s*\)version: .*/\1version: $PACKAGE_VERSION/" ./support/doc/api/openapi.yaml
7
8# Sets the package version for libs
9echo "packageVersion: $PACKAGE_VERSION" >> ./support/openapi/go.yaml
10echo "artifactVersion: $PACKAGE_VERSION" >> ./support/openapi/kotlin.yaml
11echo "packageVersion: $PACKAGE_VERSION" >> ./support/openapi/python.yaml