From f041703315ec1089d685ff939e40fbcd707bc572 Mon Sep 17 00:00:00 2001 From: varjolintu Date: Thu, 28 Mar 2019 13:27:44 +0200 Subject: [PATCH] Improve the build script --- .tx/config | 9 ++ build.js | 11 +- keepassxc-browser/icons/keepassxc-dark.svg | 154 ++++++++++++++++++++ keepassxc-browser/icons/keepassxc.svg | 113 ++++++++++++++ keepassxc-browser/icons/keepassxc_18x18.png | Bin 0 -> 1984 bytes keepassxc-browser/icons/keepassxc_36x36.png | Bin 0 -> 3216 bytes keepassxc-browser/icons/keepassxc_96x96.png | Bin 0 -> 9678 bytes keepassxc-browser/manifest.json | 9 +- package-lock.json | 4 +- package.json | 2 +- 10 files changed, 295 insertions(+), 7 deletions(-) create mode 100644 .tx/config create mode 100644 keepassxc-browser/icons/keepassxc-dark.svg create mode 100644 keepassxc-browser/icons/keepassxc.svg create mode 100644 keepassxc-browser/icons/keepassxc_18x18.png create mode 100644 keepassxc-browser/icons/keepassxc_36x36.png create mode 100644 keepassxc-browser/icons/keepassxc_96x96.png diff --git a/.tx/config b/.tx/config new file mode 100644 index 0000000..da01a97 --- /dev/null +++ b/.tx/config @@ -0,0 +1,9 @@ +[main] +host = https://www.transifex.com + +[keepassxc-browser.messagesjson] +file_filter = keepassxc-browser/_locales//messages.json +minimum_perc = 60 +source_file = keepassxc-browser/_locales/en/messages.json +source_lang = en +type = CHROME diff --git a/build.js b/build.js index f654cbb..e9134f2 100644 --- a/build.js +++ b/build.js @@ -2,6 +2,8 @@ const fs = require('fs'); const extra = require('fs-extra'); +const util = require('util'); +const exec = util.promisify(require('child_process').exec); const zaf = require('zip-a-folder'); const DEST = 'keepassxc-browser'; @@ -31,7 +33,14 @@ function adjustManifest(manifest) { return `keepassxc-browser_${data['version']}_${browser}.zip`; } +async function updateTranslations() { + console.log('Pulling translations from Transifex, please wait...'); + const { stdout } = await exec('tx pull -af'); + console.log(stdout); +} + (async() => { + await updateTranslations(); fs.copyFileSync(`${DEST}/manifest.json`, `./${DEFAULT}`); for (const browser in BROWSERS) { @@ -45,4 +54,4 @@ function adjustManifest(manifest) { } fs.renameSync(DEFAULT, `${DEST}/manifest.json`); -})() +})(); diff --git a/keepassxc-browser/icons/keepassxc-dark.svg b/keepassxc-browser/icons/keepassxc-dark.svg new file mode 100644 index 0000000..a000706 --- /dev/null +++ b/keepassxc-browser/icons/keepassxc-dark.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/keepassxc-browser/icons/keepassxc.svg b/keepassxc-browser/icons/keepassxc.svg new file mode 100644 index 0000000..d93dee4 --- /dev/null +++ b/keepassxc-browser/icons/keepassxc.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/keepassxc-browser/icons/keepassxc_18x18.png b/keepassxc-browser/icons/keepassxc_18x18.png new file mode 100644 index 0000000000000000000000000000000000000000..bd6cf12c2820d93c9328ab8f6e6abb8c4dbd167d GIT binary patch literal 1984 zcmZWq3pkW%8~#RRG%F&tl4?wJ*q9mP@SDjnHG>(agfLk#%?!pE-|Woz%@m448!1t1 zP(;=*haAF&D2Gt%m_zuPS&4o&vPE07SN?D0vb)z_*Y|wi`#$&m-tY51&+}g2_inBZ zn-F>k001`8s1$eTtF1IORp{;2mFx`wDxMrqACZrXGl2>6&D4zOE646&G;=|5OhXt{xvs1V)KqOwm}(U+K`X)?)b^Tg>49gUl9l z0_}X(_)HF;feztgl-*61AhXRr*s|gN=+=Wu&l(E)D~3k2X?`%L#JB0WAsc=<@QeJ!VGD`(Pre;3 z+D+3+3fiPtr~mXbo9`s^4JgkMcht&G( z4`XyNsD1FO1P$m)Z{$qO=@_>dR_j7b%$jQqH4C1op<37CEv^d7Wd+zMc@%Ck%YpCBcZ7k{u(DTtHo2oU|?yq_8 zzw??8ALT*&E)7ir0lHFd)DNGM$9L7`J9ep0jnVsSX5~rbE!r7Zln&{W zo8`WD=iOz;nz5yC&X1hIEG?zU?#XLD7FcCjUAR7@y(>xPwK#=V2lP4#(D>NF0V91^ z{iffWJkn&ouOGe`U6*rnwl@0iOP0fIOOZ}(7l@y}=!1kd+fWy&Fn>vU;y<8p`E-bS~;QzNQ6p!BIOFXvUWoOAuRcL>~`0 z*T4Q$x!Rq{I=oiQzzCx1{{7(E(%ml=L)&5xhp4;1T&~?r%84Ywq6!*c6)c+TYJQkd zKZ5N!`7n?^I1^a1&G3r;(48mLkTaoA41O;?4|~Ub?kTBBN>2+&BF7j=CasEigDRud z-Vb=Al|o^DRq2-Ls~7hn%}J^18Iy7qVD!!Qfn2#tk6}X3If``*1iNKmN`|Y6&tS$^ zY_>;@>kakZtOZ&#>hhf8(~~MF<}hr|YuA)3swj6-`QBQOuY2@{7M`W{P6Ida0IPEN z%*V*_&a9pCn>@~iP2@IhSrb$`-X@4Z>(&JA^A~ft4Qs(ywDrrMINf z5mSk!x4?#~7`zLD_P75_Ud-8G*(Ha}0laA(X%mSAYvT*|u@DSx~)J6B5S Ik$~9$1BmQki2wiq literal 0 HcmV?d00001 diff --git a/keepassxc-browser/icons/keepassxc_36x36.png b/keepassxc-browser/icons/keepassxc_36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..5da45189ce63556cd8469be1321a81a8fec16caf GIT binary patch literal 3216 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 literal 0 HcmV?d00001 diff --git a/keepassxc-browser/icons/keepassxc_96x96.png b/keepassxc-browser/icons/keepassxc_96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..874a98c5868f7f305f52e50bdb7ed23e92b74248 GIT binary patch literal 9678 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