-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
61 lines (50 loc) · 1.31 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const {
app,
BrowserWindow,
ipcMain,
shell,
} = require( 'electron' );
const installHandler = require( './drupal-cms' );
const install = require( './installer' );
const path = require( 'node:path' );
const { platform } = require( 'node:process' );
const startServer = require( './php-server' );
let url;
ipcMain.handle( 'start', async ({ sender: win }) => {
const dir = path.join( app.getAppPath(), 'drupal' );
await install( dir, installHandler, win );
const { url: _url, process } = await startServer( dir, win );
url = _url;
// Kill the server process on quit.
app.on( 'will-quit', () => process.kill() );
} );
ipcMain.handle( 'open', () => {
shell.openExternal( url );
} );
app.on( 'window-all-closed', () => {
if ( platform !== 'darwin' ) {
app.quit();
}
} );
function createWindow ()
{
const win = new BrowserWindow({
width: 800,
height: 300,
webPreferences: {
preload: path.join( __dirname, 'preload.js' ),
},
});
win.loadFile( 'index.html' );
if ( url ) {
win.webContents.send( 'ready', url );
}
}
app.whenReady().then(() => {
createWindow();
app.on( 'activate', () => {
if ( BrowserWindow.getAllWindows().length === 0 ) {
createWindow();
}
} );
});