From 4de31ebb857c9a813fe8c4af72f1b6c56ace0a5e Mon Sep 17 00:00:00 2001 From: Martynas Bagdonas Date: Fri, 17 Jun 2022 16:47:53 +0300 Subject: [PATCH] Update pdf-reader and note-editor, use specific prebuilds, tweak code --- note-editor | 2 +- pdf-reader | 2 +- scripts/note-editor.js | 32 ++++++++++++++++++++------------ scripts/pdf-reader.js | 32 ++++++++++++++++++++------------ scripts/pdf-worker.js | 28 +++++++++++++++++----------- 5 files changed, 59 insertions(+), 37 deletions(-) diff --git a/note-editor b/note-editor index fb3daf6c7e..3c75eb213b 160000 --- a/note-editor +++ b/note-editor @@ -1 +1 @@ -Subproject commit fb3daf6c7e1d7a91992deeea52889cb9c95972f7 +Subproject commit 3c75eb213b23da239b5b0c69b9e61ff54a2f2a4c diff --git a/pdf-reader b/pdf-reader index ac7cae37ae..f147bbaeaf 160000 --- a/pdf-reader +++ b/pdf-reader @@ -1 +1 @@ -Subproject commit ac7cae37ae8ba5ea8fc5e0b2a3faebd2d432e65a +Subproject commit f147bbaeafd00023bfbd3058a6d7697570da509e diff --git a/scripts/note-editor.js b/scripts/note-editor.js index e64d6993d8..35bf5ecf09 100644 --- a/scripts/note-editor.js +++ b/scripts/note-editor.js @@ -1,6 +1,7 @@ 'use strict'; const fs = require('fs-extra'); +const path = require('path'); const util = require('util'); const exec = util.promisify(require('child_process').exec); const { getSignatures, writeSignatures, onSuccess, onError } = require('./utils'); @@ -9,28 +10,35 @@ const { buildsURL } = require('./config'); async function getZoteroNoteEditor(signatures) { const t1 = Date.now(); - const { stdout } = await exec('git rev-parse HEAD', { cwd: './note-editor' }); + const modulePath = path.join(__dirname, '..', 'note-editor'); + + const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); const hash = stdout.trim(); if (!('note-editor' in signatures) || signatures['note-editor'].hash !== hash) { - const targetDir = 'build/resource/note-editor/'; + const targetDir = path.join(__dirname, '..', 'build', 'resource', 'note-editor'); try { const filename = hash + '.zip'; - const tmpDir = 'tmp/builds/note-editor/'; + const tmpDir = path.join(__dirname, '..', 'tmp', 'builds', 'note-editor'); const url = buildsURL + 'client-note-editor/' + filename; + + await fs.remove(targetDir); + await fs.ensureDir(targetDir); + await fs.ensureDir(tmpDir); + await exec( - `mkdir -p ${tmpDir}` - + `&& cd ${tmpDir}` - + `&& (test -f ${filename} || curl -f ${url} -o ${filename})` - + `&& rm -rf ../../../${targetDir}` - + `&& mkdir -p ../../../${targetDir}` - + `&& unzip -o ${filename} -d ../../../${targetDir}` + `cd ${tmpDir}` + + ` && (test -f ${filename} || curl -f ${url} -o ${filename})` + + ` && unzip ${filename} zotero/* -d ${targetDir}` + + ` && mv ${path.join(targetDir, 'zotero', '*')} ${targetDir}` ); + + await fs.remove(path.join(targetDir, 'zotero')); } catch (e) { - await exec('npm ci', { cwd: 'note-editor' }); - await exec('npm run build', { cwd: 'note-editor' }); - await fs.copy('note-editor/build/zotero', targetDir); + await exec('npm ci', { cwd: modulePath }); + await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); } signatures['note-editor'] = { hash }; } diff --git a/scripts/pdf-reader.js b/scripts/pdf-reader.js index 9c8fbb2c21..f6f05b218e 100644 --- a/scripts/pdf-reader.js +++ b/scripts/pdf-reader.js @@ -1,6 +1,7 @@ 'use strict'; const fs = require('fs-extra'); +const path = require('path'); const util = require('util'); const exec = util.promisify(require('child_process').exec); const { getSignatures, writeSignatures, onSuccess, onError } = require('./utils'); @@ -8,29 +9,36 @@ const { buildsURL } = require('./config'); async function getPDFReader(signatures) { const t1 = Date.now(); + + const modulePath = path.join(__dirname, '..', 'pdf-reader'); - const { stdout } = await exec('git rev-parse HEAD', { cwd: './pdf-reader' }); + const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); const hash = stdout.trim(); if (!('pdf-reader' in signatures) || signatures['pdf-reader'].hash !== hash) { - const targetDir = 'build/resource/pdf-reader/'; + const targetDir = path.join(__dirname, '..', 'build', 'resource', 'pdf-reader'); try { const filename = hash + '.zip'; - const tmpDir = 'tmp/builds/pdf-reader/'; + const tmpDir = path.join(__dirname, '..', 'tmp', 'builds', 'pdf-reader'); const url = buildsURL + 'client-pdf-reader/' + filename; + + await fs.remove(targetDir); + await fs.ensureDir(targetDir); + await fs.ensureDir(tmpDir); + await exec( - `mkdir -p ${tmpDir}` - + `&& cd ${tmpDir}` - + `&& (test -f ${filename} || curl -f ${url} -o ${filename})` - + `&& rm -rf ../../../${targetDir}` - + `&& mkdir -p ../../../${targetDir}` - + `&& unzip -o ${filename} -d ../../../${targetDir}` + `cd ${tmpDir}` + + ` && (test -f ${filename} || curl -f ${url} -o ${filename})` + + ` && unzip ${filename} zotero/* -d ${targetDir}` + + ` && mv ${path.join(targetDir, 'zotero', '*')} ${targetDir}` ); + + await fs.remove(path.join(targetDir, 'zotero')); } catch (e) { - await exec('npm ci', { cwd: 'pdf-reader' }); - await exec('npm run build', { cwd: 'pdf-reader' }); - await fs.copy('pdf-reader/build/zotero', targetDir); + await exec('npm ci', { cwd: modulePath }); + await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'zotero'), targetDir); } signatures['pdf-reader'] = { hash }; } diff --git a/scripts/pdf-worker.js b/scripts/pdf-worker.js index 2576273368..9aef082022 100644 --- a/scripts/pdf-worker.js +++ b/scripts/pdf-worker.js @@ -1,6 +1,7 @@ 'use strict'; const fs = require('fs-extra'); +const path = require('path'); const util = require('util'); const exec = util.promisify(require('child_process').exec); const { getSignatures, writeSignatures, onSuccess, onError } = require('./utils'); @@ -9,27 +10,32 @@ const { buildsURL } = require('./config'); async function getPDFWorker(signatures) { const t1 = Date.now(); - const { stdout } = await exec('git rev-parse HEAD', { cwd: 'pdf-worker' }); + const modulePath = path.join(__dirname, '..', 'pdf-worker'); + + const { stdout } = await exec('git rev-parse HEAD', { cwd: modulePath }); const hash = stdout.trim(); if (!('pdf-worker' in signatures) || signatures['pdf-worker'].hash !== hash) { - const targetDir = 'build/chrome/content/zotero/xpcom/pdfWorker/'; + const targetDir = path.join(__dirname, '..', 'build', 'chrome', 'content', 'zotero', 'xpcom', 'pdfWorker'); try { const filename = hash + '.zip'; - const tmpDir = 'tmp/builds/pdf-worker'; + const tmpDir = path.join(__dirname, '..', 'tmp', 'builds', 'pdf-worker'); const url = buildsURL + 'client-pdf-worker/' + filename; + + await fs.remove(targetDir); + await fs.ensureDir(targetDir); + await fs.ensureDir(tmpDir); + await exec( - `mkdir -p ${tmpDir}` - + `&& cd ${tmpDir}` - + `&& (test -f ${filename} || curl -f ${url} -o ${filename})` - + `&& mkdir -p ../../../${targetDir}` - + `&& unzip -o ${filename} -d ../../../${targetDir}` + `cd ${tmpDir}` + + ` && (test -f ${filename} || curl -f ${url} -o ${filename})` + + ` && unzip -o ${filename} -d ${targetDir}` ); } catch (e) { - await exec('npm ci', { cwd: 'pdf-worker' }); - await exec('npm run build', { cwd: 'pdf-worker' }); - await fs.copy('pdf-worker/build/worker.js', targetDir + 'worker.js'); + await exec('npm ci', { cwd: modulePath }); + await exec('npm run build', { cwd: modulePath }); + await fs.copy(path.join(modulePath, 'build', 'worker.js'), path.join(targetDir, 'worker.js')); } signatures['pdf-worker'] = { hash }; }