From b5ce360089e880cf1b5725e9ef79bff5ed057953 Mon Sep 17 00:00:00 2001 From: Daniel Muller Date: Wed, 29 Aug 2018 11:45:31 -0400 Subject: [PATCH] feat(build): Build images for linux --- apps/angular-console/src/assets/nautilus.png | Bin 0 -> 60905 bytes electron/package.json | 3 +- electron/src/electron.ts | 35 ++++++++++------ package-scripts.js | 31 ++++++++++++-- package.json | 8 ++-- server/src/api/read-editors.ts | 41 +++++++++++++++---- 6 files changed, 88 insertions(+), 30 deletions(-) create mode 100644 apps/angular-console/src/assets/nautilus.png diff --git a/apps/angular-console/src/assets/nautilus.png b/apps/angular-console/src/assets/nautilus.png new file mode 100644 index 0000000000000000000000000000000000000000..f7147a8c2c01940df6a09a725954e9b20c1d9606 GIT binary patch literal 60905 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 literal 0 HcmV?d00001 diff --git a/electron/package.json b/electron/package.json index b44e5e401f..29eb40ab2a 100644 --- a/electron/package.json +++ b/electron/package.json @@ -23,9 +23,10 @@ "resolve": "1.8.1", "universal-analytics": "^0.4.17", "uuid": "^3.3.2", + "apollo-server-express": "^2.0.4", "electron-store": "2.0.0" }, "devDependencies": { - "electron": "^2.0.3" + "electron": "2.0.5" } } diff --git a/electron/src/electron.ts b/electron/src/electron.ts index 7c6a863624..86773d34c5 100644 --- a/electron/src/electron.ts +++ b/electron/src/electron.ts @@ -1,11 +1,15 @@ /* tslint:disable */ -import {app, BrowserWindow, dialog, Menu} from 'electron'; +import { app, BrowserWindow, dialog, Menu } from 'electron'; import * as path from 'path'; -import {statSync} from 'fs'; +import { statSync } from 'fs'; import * as os from 'os'; -import {autoUpdater} from 'electron-updater'; -import {reportEvent, reportException, setupEvents} from './analytics_and_settings'; +import { autoUpdater } from 'electron-updater'; +import { + reportEvent, + reportException, + setupEvents +} from './analytics_and_settings'; const fixPath = require('fix-path'); const getPort = require('get-port'); @@ -46,10 +50,7 @@ function createMenu() { }, { role: 'window', - submenu: [ - { role: 'minimize' }, - { role: 'close' } - ] + submenu: [{ role: 'minimize' }, { role: 'close' }] } ]; if (os.platform() === 'darwin') { @@ -96,14 +97,22 @@ function createWindow() { try { win = new BrowserWindow(JSON.parse(store.get('windowBounds'))); } catch { - win = new BrowserWindow({ width: 800, height: 1400 }); + win = new BrowserWindow({ + width: 800, + height: 1400, + icon: path.join(__dirname, '/assets/icons/build/icon.png') + }); } getPort({ port: 7777 }).then((port: number) => { try { startServer(port); if (fileExists(path.join(currentDirectory, 'angular.json'))) { - win.loadURL(`http://localhost:${port}/workspace/${encodeURIComponent(currentDirectory)}/projects`); + win.loadURL( + `http://localhost:${port}/workspace/${encodeURIComponent( + currentDirectory + )}/projects` + ); } else { win.loadURL(`http://localhost:${port}`); } @@ -155,10 +164,12 @@ function showRestartDialog() { const dialogOptions = { type: 'info', buttons: ['Restart', 'Later'], - message: 'A new version of Angular Console has been downloaded. Restart Angular Console to install the new version.' + message: + 'A new version of Angular Console has been downloaded. Restart Angular Console to install the new version.' }; dialog.showMessageBox(dialogOptions, i => { - if (i === 0) { // Restart + if (i === 0) { + // Restart reportEvent('Lifecycle', 'QuitAndInstall'); autoUpdater.quitAndInstall(); } diff --git a/package-scripts.js b/package-scripts.js index 489a11b1fc..23dd229dd4 100644 --- a/package-scripts.js +++ b/package-scripts.js @@ -2,7 +2,18 @@ const npsUtils = require('nps-utils'); const os = require('os'); function withPlatform(command) { - const platform = os.platform() === 'win32' ? 'win' : 'mac'; + let platform; + switch (os.platform()) { + case 'win32': + platform = 'win'; + break; + case 'darwin': + platform = 'mac'; + break; + default: + platform = 'linux'; + break; + } return `${platform}.${command}`; } @@ -55,7 +66,19 @@ module.exports = { 'start-server': 'electron dist/electron --server', 'start-electron': 'NODE_ENV=development electron dist/electron', 'builder-dist': 'electron-builder --mac -p never', - 'builder-dist-linux': 'electron-builder --linux -p never' + }, + linux: { + 'clean': 'rm -rf dist', + 'compile': 'tsc -p electron/tsconfig.json', + 'copy-assets': 'cp electron/package.json dist/electron/package.json && cp -r electron/assets dist/electron', + 'copy-server': 'cp -r dist/server/src dist/electron/server', + 'install-node-modules': 'cd dist/electron && yarn', + 'copy-frontend': 'cp -r dist/apps/angular-console dist/electron/server/public', + 'pack': 'electron-builder --linux --dir -p never', + 'copy-to-osbuilds': 'cp -r dist/packages osbuilds/linux', + 'start-server': 'electron dist/electron --server', + 'start-electron': 'NODE_ENV=development electron dist/electron', + 'builder-dist': 'electron-builder --linux -p never' }, win: { 'clean': 'if exist dist rmdir dist /s /q', @@ -75,10 +98,10 @@ module.exports = { 'prepare': npsUtils.series.nps(withPlatform('clean'), 'dev.compile-server-and-electron', 'frontend.build', withPlatform('copy-frontend'), withPlatform('pack')), 'server': npsUtils.series.nps('dev.compile-server-and-electron', withPlatform('start-server')), 'up': npsUtils.concurrent.nps('dev.server', 'frontend.serve'), - 'dist': npsUtils.series.nps(withPlatform('prepare'), withPlatform('builder-dist'), withPlatform('copy-to-osbuilds')) + 'dist': npsUtils.series.nps('dev.prepare', withPlatform('builder-dist'), withPlatform('copy-to-osbuilds')) }, publish: { - 'builder-publish': 'electron-builder --mac --win -p always --config.win.certificateSubjectName="Narwhal Technologies Inc."', + 'builder-publish': 'electron-builder --mac --win --linux -p always --config.win.certificateSubjectName="Narwhal Technologies Inc."', 'publish': npsUtils.series.nps('dev.prepare', 'publish.builder-publish') }, e2e: { diff --git a/package.json b/package.json index 6423e814c1..6b5d6085d1 100644 --- a/package.json +++ b/package.json @@ -32,11 +32,11 @@ "icon": "icon.ico" }, "linux": { + "icon": "icon.png", "target": [ - "snap", - "deb", "AppImage", - "tar.xz" + "deb", + "tar.gz" ], "synopsis": "Angular Console", "category": "Development" @@ -53,7 +53,7 @@ "repo": "angular-console" } ] - }, + }, "dependencies": { "@nrwl/nx": "6.2.1" }, diff --git a/server/src/api/read-editors.ts b/server/src/api/read-editors.ts index 5aa767d0c2..cc4918d32d 100644 --- a/server/src/api/read-editors.ts +++ b/server/src/api/read-editors.ts @@ -8,6 +8,9 @@ export function readEditors() { if (hasFinder()) { editors.push({ name: 'Finder', icon: 'finder' }); } + if (hasNautilus()) { + editors.push({ name: 'Files', icon: 'nautilus' }); + } if (hasExplorer()) { editors.push({ name: 'Explorer', icon: 'explorer' }); } @@ -26,6 +29,8 @@ export function readEditors() { export function openInEditor(editor: string, path: string) { if (editor === 'Finder') { openInFinder(path); + } else if (editor === 'Files') { + openInNautilus(path); } else if (editor === 'Explorer') { openInExplorer(path); } else if (editor === 'VS Code') { @@ -43,6 +48,10 @@ function hasFinder() { return os.platform() === 'darwin'; } +function hasNautilus() { + return exists('nautilus'); +} + function hasExplorer() { return os.platform() === 'win32'; } @@ -56,8 +65,7 @@ function hasVsCode() { return false; } } else if (os.platform() === 'linux') { - // TODO implement linux support - return false; + return exists('code'); } else if (os.platform() === 'win32') { try { return ( @@ -82,8 +90,7 @@ function hasWebStorm() { return false; } } else if (os.platform() === 'linux') { - // TODO implement linux support - return false; + return exists('wstorm') || exists('webstorm.sh'); } else if (os.platform() === 'win32') { return hasExecutable('webstorm', process.cwd()); } else { @@ -100,8 +107,7 @@ function hasIntellij() { return false; } } else if (os.platform() === 'linux') { - // TODO implement linux support - return false; + return exists('idea'); } else if (os.platform() === 'win32') { return hasExecutable('idea', process.cwd()); } else { @@ -115,6 +121,10 @@ function openInFinder(path: string) { } } +function openInNautilus(path: string) { + exec(`nautilus ${path}`); +} + function openInExplorer(path: string) { if (os.platform() === 'win32') { exec(`start "" "${path}"`); @@ -125,7 +135,7 @@ function openInVsCode(path: string) { if (os.platform() === 'darwin') { spawn('open', ['-a', 'Visual Studio Code', path], { detached: true }); } else if (os.platform() === 'linux') { - // TODO implement linux support + exec(`code ${path}`); } else if (os.platform() === 'win32') { exec(`code "${toWindows(path)}"`); } @@ -135,7 +145,11 @@ function openInWebStorm(path: string) { if (os.platform() === 'darwin') { spawn('open', ['-a', 'WebStorm', path], { detached: true }); } else if (os.platform() === 'linux') { - // TODO implement linux support + if (exists('wstorm')) { + exec(`wstorm ${path}`); + } else { + exec(`webstorm.sh ${path}`); + } } else if (os.platform() === 'win32') { spawn(findExecutable('webstorm', process.cwd()), [toWindows(path)], { detached: true @@ -147,7 +161,7 @@ function openInIntelliJ(path: string) { if (os.platform() === 'darwin') { spawn('open', ['-a', 'IntelliJ IDEA', path], { detached: true }); } else if (os.platform() === 'linux') { - // TODO implement linux support + exec(`idea ${path}`); } else if (os.platform() === 'win32') { spawn(findExecutable('idea', process.cwd()), [toWindows(path)], { detached: true @@ -161,3 +175,12 @@ function toWindows(path: string): string { .filter(p => !!p) .join('\\'); } + +function exists(cmd: string): boolean { + try { + execSync(`which ${cmd}`).toString(); + return true; + } catch (error) { + return false; + } +}