diff --git a/README b/README index ffdd78a..23d1c80 100644 --- a/README +++ b/README @@ -14,7 +14,8 @@ so the first step is to get a working copy of Riot. There are a few ways of doin ``` # Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version # fetched will be the same as the local riot-desktop package. -yarn run fetch --noverify +# We're explicitly asking for no config, so the package Riot will have no config.json. +yarn run fetch --noverify --cfgdir '' ``` ...or if you'd like to use GPG to verify the downloaded package: @@ -24,14 +25,14 @@ yarn run fetch --noverify # once. yarn run fetch --importkey # Fetch the package and verify the signature -yarn run fetch +yarn run fetch --cfgdir '' ``` ...or either of the above, but fetching a specific version of Riot: ``` # Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version # fetched will be the same as the local riot-desktop package. -yarn run fetch --noverify v1.5.6 +yarn run fetch --noverify --cfgdir '' v1.5.6 ``` If you only want to run the app locally and don't need to build packages, you can @@ -74,3 +75,16 @@ If you'd just like to run the electron app locally for development: yarn add electron yarn start ``` + +Config +====== +If you'd like the packaged Riot to have a configuration file, you can create a +config directory and place `config.json` in there, then specify this directory +with the `--cfgdir` option to `yarn run fetch`, eg: +``` +mkdir myconfig +cp /path/to/my/config.json myconfig/ +yarn run fetch --cfgdir myconfig +``` +The config dir for the official Riot.im app is in `riot.im`. If you use this, +your app will auto-update itself using builds from Riot.im. diff --git a/riot.im/env.sh b/riot.im/env.sh deleted file mode 100644 index 0ee8105..0000000 --- a/riot.im/env.sh +++ /dev/null @@ -1 +0,0 @@ -export OSSLSIGNCODE_SIGNARGS='-pkcs11module /Library/Frameworks/eToken.framework/Versions/Current/libeToken.dylib -pkcs11engine /usr/local/lib/engines/engine_pkcs11.so -certs electron_app/riot.im/New_Vector_Ltd.pem -key 0a3271cbc1ec0fd8afb37f6bbe0cd65ba08d3b4d -t http://timestamp.comodoca.com -verbose' diff --git a/scripts/fetch-package.js b/scripts/fetch-package.js index 04efce1..106db3b 100755 --- a/scripts/fetch-package.js +++ b/scripts/fetch-package.js @@ -58,6 +58,7 @@ async function main() { let importkey = false; let pkgDir = 'packages'; let deployDir = 'deploys'; + let cfgDir; let targetVersion; while (process.argv.length > 2) { @@ -76,6 +77,11 @@ async function main() { process.argv.shift(); deployDir = process.argv[2]; break; + case '--cfgdir': + case '-d': + process.argv.shift(); + cfgDir = process.argv[2]; + break; default: targetVersion = process.argv[2]; } @@ -118,6 +124,13 @@ async function main() { }); return 0; } + + if (cfgDir === undefined) { + console.log("No config directory set"); + console.log("Specify a config directory with --cfgdir or -d"); + console.log("To build with no config (and no auto-update), pass the empty string (-d '')"); + return 1; + } if (verify && !haveGpg) { console.log("No working GPG binary: install GPG or pass --noverify to skip verification"); @@ -186,6 +199,15 @@ async function main() { } catch (e) { } + if (cfgDir.length) { + const configJsonSource = path.join(cfgDir, 'config.json'); + const configJsonDest = path.join(expectedDeployDir, 'config.json'); + console.log(configJsonSource + ' -> ' + configJsonDest); + await fsPromises.copyFile(configJsonSource, configJsonDest); + } else { + console.log("Skipping config file"); + } + console.log("Pack " + expectedDeployDir + " -> " + ASAR_PATH); await asar.createPackage(expectedDeployDir, ASAR_PATH); console.log("Done!");