diff options
author | 0neGal <mail@0negal.com> | 2022-02-19 22:05:05 +0100 |
---|---|---|
committer | 0neGal <mail@0negal.com> | 2022-02-19 22:05:05 +0100 |
commit | a3741b2934a8c8dffd3f665576f33324e89a4a1b (patch) | |
tree | 0c23cce89061b4361028e0ebf516ff4f35dc5187 /build | |
parent | 47f2e089dc94cbb33800313173548cb15f0aeec1 (diff) | |
download | Viper-a3741b2934a8c8dffd3f665576f33324e89a4a1b.tar.gz Viper-a3741b2934a8c8dffd3f665576f33324e89a4a1b.zip |
updated build scripts/code tests
build/langs.js now gives more info and has colors. It also changes it's
exit code if an error happened, we then use that in build/publish.sh to
catch localization errors before publishing. We also ensure that version
numbers are set correctly.
Then at last we will make sure $GH_TOKEN is set, and if not, prompt for
the token, to make sure you don't build everything then error out when
you forgot to put in your token.
Diffstat (limited to 'build')
-rw-r--r-- | build/langs.js | 24 | ||||
-rwxr-xr-x | build/publish.sh | 41 |
2 files changed, 62 insertions, 3 deletions
diff --git a/build/langs.js b/build/langs.js index 9e21dff..e870a3c 100644 --- a/build/langs.js +++ b/build/langs.js @@ -1,5 +1,6 @@ const fs = require("fs"); +let problems = false; let lang = require("../src/lang/en.json"); let maintainers = require("../src/lang/maintainers.json"); @@ -9,7 +10,14 @@ langs.forEach((localefile) => { let missing = []; let langmaintainers = maintainers.list[localefile.replace(/\..*$/, "")]; - let locale = require("../src/lang/" + localefile) + let locale = false; + try { + locale = require("../src/lang/" + localefile) + }catch(err) { + console.log(`\x1b[101m!! ${localefile} is not formatted right !!\x1b[0m`); + return + } + for (let i in lang) { if (! locale[i]) { missing.push(i); @@ -17,16 +25,26 @@ langs.forEach((localefile) => { } if (missing.length > 0) { + problems = true; + console.error(`${localefile} is missing:`) for (let i in missing) { - console.log(` ${missing[i]}`) + console.log(`\x1b[31m ${missing[i]}\x1b[0m`) } console.log() - console.log("Maintainers of language: ") + console.log("Maintainers: ") for (let i in langmaintainers) { console.log(` ${langmaintainers[i]}`) } + + console.log("\n") } }) + +if (! problems) { + console.log("\x1b[32mAll localizations are complete and formatted properly.\x1b[0m"); +} else { + process.exit(1); +} diff --git a/build/publish.sh b/build/publish.sh new file mode 100755 index 0000000..c8f7832 --- /dev/null +++ b/build/publish.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +VERSION="v$(jq '.version' package.json -r)" +LOCK1="v$(jq '.version' package-lock.json -r)" +LOCK2="v$(jq '.packages[""].version' package-lock.json -r)" + +REPO="$(jq '.repository.url' package.json -r | sed 's/.*.com\///g')" + +REMOTEVERSION="$(curl --silent "https://api.github.com/repos/0neGal/viper/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')" + +[ "$REMOTEVERSION" = "$VERSION" ] && { + echo "A release already exists with the current version number!" + exit 1 +} + +[ "$VERSION" != "$LOCK1" ] && { + echo "Two seperate version numbers in package.json and package-lock.json" + echo " $VERSION, $LOCK1" + exit 1 +} + +[ "$LOCK1" != "$LOCK2" ] && { + echo "Version mismatches in package-lock.json" + echo " $LOCK1, $LOCK2" + exit 1 +} + + +node build/langs.js || { + echo "Please fix localization errors before publishing..." + exit 1 +} + +GH_TOKEN="$GH_TOKEN" + +[ "$GH_TOKEN" = "" ] && { + echo "GH_TOKEN is not set, please type it below:" + read -p "> " GH_TOKEN +} + +npm run publish |