mirror of
https://github.com/cryptoadvance/specter-desktop.git
synced 2026-08-13 12:33:29 +02:00
Chore: Electron refactoring (#2270)
* use specter_dev dir in dev + change logic to determine dev mode * SPECTER_DATA_FOLDER picked up in Electron to set dev folder --------- Co-authored-by: k9ert <k9ert@gmx.de>
This commit is contained in:
parent
ddcafe0bd3
commit
10d84ddac7
4 changed files with 62 additions and 45 deletions
|
|
@ -1,26 +1,61 @@
|
|||
const fs = require('fs')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const crypto = require('crypto')
|
||||
const readLastLines = require('read-last-lines');
|
||||
const downloadloc = require('./downloadloc');
|
||||
const { loggers } = require('winston');
|
||||
const appName = downloadloc.appName()
|
||||
const appNameLower = appName.toLowerCase()
|
||||
const isDev = process.env.NODE_ENV === "development"
|
||||
const unresolvedDevFolder = process.env.SPECTER_DATA_FOLDER || "~/.specter_dev"
|
||||
const devFolder = unresolvedDevFolder.replace(/^~/, os.homedir());
|
||||
const prodFolder = path.resolve(os.homedir(), `.${appNameLower}`)
|
||||
const isMac = process.platform === 'darwin'
|
||||
|
||||
let appSettingsPath
|
||||
let specterdDirPath
|
||||
let specterAppLogPath
|
||||
let versionData
|
||||
try {
|
||||
|
||||
// Use different version-data.jsons
|
||||
|
||||
// Should look like this:
|
||||
// {
|
||||
// "version": "v2.0.0-pre32",
|
||||
// "sha256": "aa049abf3e75199bad26fbded08ee5911ad48e325b42c43ec195136bd0736785"
|
||||
// }
|
||||
|
||||
if (isDev) {
|
||||
let versionDataPath = `${devFolder}/version-data.json`
|
||||
try {
|
||||
versionData = require(versionDataPath)
|
||||
}
|
||||
catch {
|
||||
}
|
||||
}
|
||||
else {
|
||||
try {
|
||||
versionData = require('./version-data.json')
|
||||
console.log(versionData)
|
||||
} catch (e) {
|
||||
console.log('Could not find default version data configurations...'+e)
|
||||
}
|
||||
catch (e) {
|
||||
console.log('Could not find default version data configurations: '+e)
|
||||
versionData = {
|
||||
"version": "",
|
||||
"sha256": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isDev) {
|
||||
appSettingsPath = `${devFolder}/app_settings.json`
|
||||
specterdDirPath = `${devFolder}/specterd-binaries`
|
||||
specterAppLogPath = `${devFolder}/specterApp.log`
|
||||
}
|
||||
else {
|
||||
appSettingsPath = `${prodFolder}/app_settings.json`
|
||||
specterdDirPath = `${prodFolder}/specterd-binaries`
|
||||
specterAppLogPath = `${prodFolder}/specterApp.log`
|
||||
}
|
||||
const appSettingsPath = path.resolve(require('os').homedir(), `.${appNameLower}/app_settings.json`)
|
||||
const specterdDirPath = path.resolve(require('os').homedir(), `.${appNameLower}/specterd-binaries`)
|
||||
const specterAppLogPath = path.resolve(require('os').homedir(), `.${appNameLower}/specterApp.log`)
|
||||
|
||||
function getFileHash(filename, callback) {
|
||||
let shasum = crypto.createHash('sha256')
|
||||
|
|
@ -45,8 +80,8 @@ function getAppSettings() {
|
|||
basicAuthPass: '',
|
||||
tor: false,
|
||||
proxyURL: "socks5://127.0.0.1:9050",
|
||||
specterdVersion: versionData.version,
|
||||
specterdHash: versionData.sha256,
|
||||
specterdVersion: (versionData && versionData.version !== undefined) ? versionData.version : 'unknown',
|
||||
specterdHash: (versionData && versionData.sha256 !== undefined) ? versionData.sha256 : 'unknown',
|
||||
specterdCLIArgs: "",
|
||||
versionInitialized: false
|
||||
}
|
||||
|
|
@ -82,5 +117,9 @@ module.exports = {
|
|||
getAppSettings: getAppSettings,
|
||||
specterdDirPath: specterdDirPath,
|
||||
getSpecterAppLogs: getSpecterAppLogs,
|
||||
specterAppLogPath: specterAppLogPath
|
||||
specterAppLogPath: specterAppLogPath,
|
||||
versionData,
|
||||
isDev: isDev,
|
||||
devFolder,
|
||||
isMac, isMac
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,34 +9,30 @@ const extract = require('extract-zip')
|
|||
const defaultMenu = require('electron-default-menu');
|
||||
const ProgressBar = require('electron-progressbar')
|
||||
const { spawn, exec } = require('child_process');
|
||||
|
||||
const helpers = require('./helpers')
|
||||
const getFileHash = helpers.getFileHash
|
||||
const getAppSettings = helpers.getAppSettings
|
||||
const appSettingsPath = helpers.appSettingsPath
|
||||
const specterdDirPath = helpers.specterdDirPath
|
||||
|
||||
const { getFileHash, getAppSettings, appSettingsPath, specterdDirPath, specterAppLogPath, versionData, isDev, devFolder, isMac } = require('./helpers')
|
||||
const downloadloc = require('./downloadloc')
|
||||
const getDownloadLocation = downloadloc.getDownloadLocation
|
||||
const appName = downloadloc.appName()
|
||||
const appNameLower = appName.toLowerCase()
|
||||
|
||||
// Quit again if there is no version-data in dev
|
||||
if (isDev && versionData === undefined) {
|
||||
console.log(`You need to create a version-data.json in your dev folder (${devFolder}) to run the app. Check helpers.js for the format. Quitting ...`)
|
||||
app.quit()
|
||||
return
|
||||
}
|
||||
|
||||
ipcMain.handle("showMessageBoxSync", (e, message, buttons) => {
|
||||
dialog.showMessageBoxSync(mainWindow, { message, buttons });
|
||||
});
|
||||
|
||||
// Helper
|
||||
const isMac = process.platform === 'darwin'
|
||||
const isDev = process.env.NODE_ENV !== "production"
|
||||
|
||||
// Logging
|
||||
const {transports, format, createLogger } = require('winston')
|
||||
const combinedLog = new transports.File({ filename: helpers.specterAppLogPath });
|
||||
const combinedLog = new transports.File({ filename: specterAppLogPath });
|
||||
const winstonOptions = {
|
||||
exitOnError: false,
|
||||
format: format.combine(
|
||||
format.timestamp(),
|
||||
// format.timestamp({format:'MM/DD/YYYY hh:mm:ss.SSS'}),
|
||||
format.json(),
|
||||
format.printf(info => {
|
||||
return `${info.timestamp} [${info.level}] : ${info.message}`;
|
||||
|
|
@ -326,19 +322,6 @@ app.whenReady().then(() => {
|
|||
fs.mkdirSync(specterdDirPath, { recursive: true });
|
||||
}
|
||||
|
||||
let versionData
|
||||
// Download specterd, run sha256sum on it and then set your own versionData in dev, should look this:
|
||||
// {
|
||||
// "version": "v2.0.0-pre32",
|
||||
// "sha256": "aa049abf3e75199bad26fbded08ee5911ad48e325b42c43ec195136bd0736785"
|
||||
// }
|
||||
if (isDev) {
|
||||
versionData = require('./version-data-dev.json')
|
||||
}
|
||||
else {
|
||||
versionData = require('./version-data.json')
|
||||
}
|
||||
|
||||
if (!appSettings.versionInitialized || appSettings.versionInitialized != versionData.version) {
|
||||
logger.info(`Updating ${appSettingsPath} : ${JSON.stringify(appSettings)}`);
|
||||
appSettings.specterdVersion = versionData.version
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
"version": "v0.0.0",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"start": "cp -R ../../src/cryptoadvance/specter/static/fonts ../../src/cryptoadvance/specter/static/output.css ../../src/cryptoadvance/specter/static/typography.css . && electron .",
|
||||
"start": "export NODE_ENV=development && cp -R ../../src/cryptoadvance/specter/static/fonts ../../src/cryptoadvance/specter/static/output.css ../../src/cryptoadvance/specter/static/typography.css . && electron .",
|
||||
"pack": "electron-builder --dir",
|
||||
"dist": "export NODE_ENV=production && electron-builder --publish=never",
|
||||
"dist": "electron-builder --publish=never",
|
||||
"postinstall": "electron-builder install-app-deps"
|
||||
},
|
||||
"repository": "https://github.com/cryptoadvance/specter-desktop",
|
||||
|
|
@ -53,4 +53,4 @@
|
|||
"request": "^2.88.2",
|
||||
"winston": "^3.3.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"version": "v2.0.0-pre32",
|
||||
"sha256": "aa049abf3e75199bad26fbded08ee5911ad48e325b42c43ec195136bd0736785"
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue