electron packaging

This commit is contained in:
sawka
2022-10-31 16:41:44 -07:00
parent cd0a65f120
commit 7b11999d29
6 changed files with 530 additions and 48 deletions
+3 -1
View File
@@ -1,4 +1,6 @@
dist/
node_modules/
*~
*.log
*.log
out/
.DS_Store
+22
View File
@@ -0,0 +1,22 @@
module.exports = {
packagerConfig: {},
rebuildConfig: {},
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {},
},
{
name: '@electron-forge/maker-zip',
platforms: ['darwin'],
},
{
name: '@electron-forge/maker-deb',
config: {},
},
{
name: '@electron-forge/maker-rpm',
config: {},
},
],
};
+13 -2
View File
@@ -1,12 +1,13 @@
{
"name": "sh2",
"version": "1.0.0",
"main": "emain.js",
"main": "dist/emain-dev.js",
"license": "Proprietary",
"dependencies": {
"autobind-decorator": "^2.4.0",
"classnames": "^2.3.1",
"dayjs": "^1.11.3",
"electron-squirrel-startup": "^1.0.0",
"fs-ext": "^2.0.0",
"mobx": "^6.6.0",
"mobx-react": "^7.5.0",
@@ -17,6 +18,7 @@
"throttle-debounce": "^5.0.0",
"tsx-control-statements": "^4.1.1",
"uuid": "^9.0.0",
"winston": "^3.8.2",
"xterm": "^5.0.0"
},
"devDependencies": {
@@ -28,7 +30,11 @@
"@babel/preset-env": "^7.18.2",
"@babel/preset-react": "^7.17.12",
"@babel/preset-typescript": "^7.17.12",
"@electron-forge/cli": "^6.0.0-beta.64",
"@electron-forge/cli": "^6.0.0-beta.70",
"@electron-forge/maker-deb": "^6.0.0-beta.70",
"@electron-forge/maker-rpm": "^6.0.0-beta.70",
"@electron-forge/maker-squirrel": "^6.0.0-beta.70",
"@electron-forge/maker-zip": "^6.0.0-beta.70",
"@types/classnames": "^2.3.1",
"@types/electron": "^1.6.10",
"@types/node": "^18.0.3",
@@ -52,5 +58,10 @@
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.9.1",
"webpack-merge": "^5.8.0"
},
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make"
}
}
+1 -1
View File
@@ -21,7 +21,7 @@ node_modules/.bin/electron-rebuild
```bash
# @scripthaus command electron
# @scripthaus cd :playbook
node_modules/.bin/electron dist/emain-dev.js
SH_DEV=1 node_modules/.bin/electron dist/emain-dev.js
```
```bash
+46 -32
View File
@@ -6,6 +6,34 @@ import * as child_process from "node:child_process";
import {debounce} from "throttle-debounce";
import {acquireSCElectronLock} from "./base";
import {handleJsonFetchResponse} from "./util";
import * as winston from "winston";
import * as util from "util";
import {sprintf} from "sprintf-js";
let isDev = (process.env.SH_DEV != null);
let scHome = getScHomeDir();
ensureDir(scHome);
let logger;
let loggerConfig = {
level: "info",
format: winston.format.combine(
winston.format.timestamp({format: "YYYY-MM-DD HH:mm:ss"}),
winston.format.printf(info => `${info.timestamp} ${info.message}`),
),
transports: [
new winston.transports.File({filename: path.join(scHome, "scripthaus-app.log"), level: "info"}),
],
};
if (isDev) {
loggerConfig.transports.push(new winston.transports.Console());
}
logger = winston.createLogger(loggerConfig);
function log(...msg) {
logger.info(util.format(...msg));
}
console.log = log;
console.log(sprintf("scripthaus-app starting, SCRIPTHAUS_HOME=%s, dirname=%s", scHome, __dirname));
// TODO fix these paths
const LocalServerPath = "/Users/mike/scripthaus/local-server";
@@ -16,6 +44,23 @@ const LocalServerCwd = "/Users/mike/work/gopath/src/github.com/scripthaus-dev/sh
let localServerProc = null;
let localServerShouldRestart = false;
// must match golang
function getScHomeDir() {
let scHome = process.env.SCRIPTHAUS_HOME;
if (scHome == null) {
let homeDir = process.env.HOME;
if (homeDir == null) {
homeDir = "/";
}
scHome = path.join(homeDir, "scripthaus");
}
return scHome;
}
function ensureDir(dir) {
fs.mkdirSync(dir, {recursive: true, mode: 0o700});
}
let app = electron.app;
app.setName("ScriptHaus");
@@ -52,7 +97,6 @@ let menu = electron.Menu.buildFromTemplate(menuTemplate);
electron.Menu.setApplicationMenu(menu);
let MainWindow = null;
let RemotesWindow = null;
function getMods(input : any) {
return {meta: input.meta, shift: input.shift, ctrl: input.ctrl, alt: input.alt};
@@ -61,31 +105,6 @@ function getMods(input : any) {
function shNavHandler(event : any, url : any) {
console.log("navigation", url);
event.preventDefault();
if (url == "file:///remotes.html") {
createRemotesWindow();
}
}
function createRemotesWindow() {
if (RemotesWindow != null) {
console.log("remotes exists");
RemotesWindow.focus();
return;
}
console.log("create remotes window");
let win = new electron.BrowserWindow({
width: 800,
height: 600,
webPreferences: {
preload: path.join(__dirname, "../src/preload.js"),
},
});
RemotesWindow = win;
win.loadFile("../static/remotes.html");
win.on("close", () => {
RemotesWindow = null;
});
win.webContents.on("will-navigate", shNavHandler);
}
function createMainWindow(clientData) {
@@ -99,7 +118,7 @@ function createMainWindow(clientData) {
preload: path.join(__dirname, "../src/preload.js"),
},
});
win.loadFile("../static/index.html");
win.loadFile(path.join(__dirname, "../static/index.html"));
win.webContents.on("before-input-event", (e, input) => {
if (input.type != "keyDown") {
return;
@@ -130,11 +149,6 @@ function createMainWindow(clientData) {
win.webContents.send("w-cmd", mods);
return;
}
//if (input.code == "KeyR" && input.meta && input.alt) {
// createRemotesWindow();
// e.preventDefault();
// return;
//}
if (input.code == "KeyH" && input.meta) {
win.webContents.send("h-cmd", mods);
e.preventDefault();
+445 -12
View File
File diff suppressed because it is too large Load Diff