From 005269e2ad43fef849e33084091c0c5cad780640 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Thu, 16 Apr 2020 12:37:41 -0600 Subject: [PATCH 1/3] Make Jitsi download script a JS script It's awful but means that we create the directory on all platforms in-process. Fixes https://github.com/vector-im/riot-web/issues/13215 --- package.json | 3 ++- scripts/build-jitsi.js | 22 ++++++++++++++++++++++ scripts/build-jitsi.sh | 7 ------- yarn.lock | 27 ++++++++------------------- 4 files changed, 32 insertions(+), 27 deletions(-) create mode 100644 scripts/build-jitsi.js delete mode 100755 scripts/build-jitsi.sh diff --git a/package.json b/package.json index 45f99265cf..57d8513f34 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "clean": "rimraf lib webapp electron_app/dist", "build": "yarn clean && yarn build:genfiles && yarn build:compile && yarn build:types && yarn build:bundle", "build-stats": "yarn clean && yarn build:genfiles && yarn build:compile && yarn build:types && yarn build:bundle-stats", - "build:jitsi": "scripts/build-jitsi.sh", + "build:jitsi": "node scripts/build-jitsi.js", "build:res": "node scripts/copy-res.js", "build:genfiles": "yarn reskindex && yarn build:res && yarn build:jitsi", "build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js", @@ -135,6 +135,7 @@ "minimist": "^1.2.0", "mkdirp": "^0.5.1", "modernizr": "^3.6.0", + "node-fetch": "^2.6.0", "optimize-css-assets-webpack-plugin": "^5.0.3", "postcss-extend": "^1.0.5", "postcss-hexrgba": "^2.0.0", diff --git a/scripts/build-jitsi.js b/scripts/build-jitsi.js new file mode 100644 index 0000000000..56c81c1694 --- /dev/null +++ b/scripts/build-jitsi.js @@ -0,0 +1,22 @@ +// This is a JS script so that the directory is created in-process on Windows. +// Sorry. + +const fs = require("fs"); +const path = require("path"); +const mkdirp = require("mkdirp"); +const fetch = require("node-fetch"); + +console.log("Making webapp directory"); +mkdirp.sync("webapp"); + +// curl -s https://jitsi.riot.im/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js +console.log("Downloading Jitsi script"); +const fname = path.join("webapp", "jitsi_external_api.min.js"); +fetch("https://jitsi.riot.im/libs/external_api.min.js").then(res => { + const stream = fs.createWriteStream(fname); + return new Promise((resolve, reject) => { + res.body.pipe(stream); + res.body.on('error', err => reject(err)); + res.body.on('finish', () => resolve()); + }); +}).then(() => console.log('Done with Jitsi download')); diff --git a/scripts/build-jitsi.sh b/scripts/build-jitsi.sh deleted file mode 100755 index 5d4bdafe12..0000000000 --- a/scripts/build-jitsi.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -if [[ ! -f "./webapp" ]]; then - mkdir "./webapp" -fi - -curl -s https://jitsi.riot.im/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js diff --git a/yarn.lock b/yarn.lock index 8a9bc0e575..273d3fd826 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7645,8 +7645,8 @@ matrix-mock-request@^1.2.3: create-react-class "^15.6.0" diff-dom "^4.1.3" diff-match-patch "^1.0.4" - emojibase-data "^5.0.1" - emojibase-regex "^4.0.1" + emojibase-data "^4.0.2" + emojibase-regex "^3.0.0" escape-html "^1.0.3" file-saver "^1.3.3" filesize "3.5.6" @@ -8136,6 +8136,11 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + node-forge@0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -8191,22 +8196,6 @@ node-notifier@^5.4.2: shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-pre-gyp@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054" @@ -11693,7 +11682,7 @@ tar-stream@^2.1.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^4, tar@^4.4.2: +tar@^4: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== From 3f14b31e470a39130d0793539a8239e6ec1b1419 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 20 Apr 2020 09:46:52 -0600 Subject: [PATCH 2/3] Add more words to explain windows being awful --- scripts/build-jitsi.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/build-jitsi.js b/scripts/build-jitsi.js index 56c81c1694..464ec6ea69 100644 --- a/scripts/build-jitsi.js +++ b/scripts/build-jitsi.js @@ -1,4 +1,6 @@ // This is a JS script so that the directory is created in-process on Windows. +// If the script isn't run in-process, there's a risk of it racing or never running +// due to file associations in Windows. // Sorry. const fs = require("fs"); From 3eadf35819abe2f981f553783f7063e9718592b1 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 20 Apr 2020 09:49:09 -0600 Subject: [PATCH 3/3] Manually undo emojibase changes in lockfile --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 273d3fd826..a9205673c2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7645,8 +7645,8 @@ matrix-mock-request@^1.2.3: create-react-class "^15.6.0" diff-dom "^4.1.3" diff-match-patch "^1.0.4" - emojibase-data "^4.0.2" - emojibase-regex "^3.0.0" + emojibase-data "^5.0.1" + emojibase-regex "^4.0.1" escape-html "^1.0.3" file-saver "^1.3.3" filesize "3.5.6"