mirror of
https://github.com/balena-io/etcher.git
synced 2025-11-11 19:29:27 +00:00
Compare commits
10 Commits
kyle/patch
...
pro-try-3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9520085fa | ||
|
|
64c4863c8a | ||
|
|
dea11bedf2 | ||
|
|
19bd8a7968 | ||
|
|
32bd0b65bc | ||
|
|
a51e378854 | ||
|
|
3426f1a43c | ||
|
|
8815e8d4c3 | ||
|
|
531cd1816b | ||
|
|
54960f3692 |
@@ -1,2 +0,0 @@
|
||||
*
|
||||
!requirements.txt
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -6,6 +6,7 @@
|
||||
*.scss text eol=lf
|
||||
|
||||
# Text files
|
||||
*.Dockerfile text
|
||||
Dockerfile* text
|
||||
.dockerignore text
|
||||
.editorconfig text
|
||||
|
||||
2
Makefile
2
Makefile
@@ -182,7 +182,7 @@ test-spectron:
|
||||
ETCHER_SPECTRON_ENTRYPOINT="$(ETCHER_SPECTRON_ENTRYPOINT)" mocha $(MOCHA_OPTIONS) tests/spectron
|
||||
|
||||
test-gui:
|
||||
electron-mocha $(MOCHA_OPTIONS) --renderer tests/gui
|
||||
electron-mocha $(MOCHA_OPTIONS) --full-trace --renderer tests/gui
|
||||
|
||||
test-sdk:
|
||||
electron-mocha $(MOCHA_OPTIONS) \
|
||||
|
||||
19
etcher-pro.Dockerfile
Normal file
19
etcher-pro.Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
FROM balenalib/amd64-debian-node:12.6-buster-build as builder
|
||||
RUN \
|
||||
apt-get update \
|
||||
&& \
|
||||
apt-get install \
|
||||
build-essential \
|
||||
jq \
|
||||
&& \
|
||||
apt-get clean
|
||||
WORKDIR /usr/src/app
|
||||
ADD . ./
|
||||
RUN npm config set unsafe-perm true
|
||||
RUN npm config set arch armv7l
|
||||
ENV npm_config_arch=armv7l
|
||||
RUN make electron-develop
|
||||
|
||||
FROM alexisresinio/balena-electronjs-amd64
|
||||
WORKDIR /usr/src/app
|
||||
COPY --from=builder /usr/src/app /usr/src/app
|
||||
@@ -91,7 +91,9 @@ const createMainWindow = () => {
|
||||
icon: path.join(__dirname, '..', '..', 'assets', 'icon.png'),
|
||||
darkTheme: true,
|
||||
webPreferences: {
|
||||
backgroundThrottling: false
|
||||
backgroundThrottling: false,
|
||||
nodeIntegration: true,
|
||||
webviewTag: true
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -22,12 +22,9 @@
|
||||
// *won't* attempt to load the `app.asar` application by default, therefore
|
||||
// if passing `ELECTRON_RUN_AS_NODE`, you have to pass the path to the asar
|
||||
// or the entry point file (this file) manually as an argument.
|
||||
//
|
||||
// We also consider `ATOM_SHELL_INTERNAL_RUN_AS_NODE`, which is basically
|
||||
// an older equivalent of `ELECTRON_RUN_AS_NODE` that still gets set when
|
||||
// using `child_process.fork()`.
|
||||
if (process.env.ELECTRON_RUN_AS_NODE || process.env.ATOM_SHELL_INTERNAL_RUN_AS_NODE) {
|
||||
|
||||
if (process.env.ELECTRON_RUN_AS_NODE) {
|
||||
require('./gui/modules/child-writer')
|
||||
} else {
|
||||
require('../generated/etcher')
|
||||
require('./gui/etcher')
|
||||
}
|
||||
|
||||
3071
npm-shrinkwrap.json
generated
3071
npm-shrinkwrap.json
generated
File diff suppressed because it is too large
Load Diff
28
package.json
28
package.json
@@ -9,7 +9,7 @@
|
||||
"sleepDays": 7,
|
||||
"semverRange": "<2.0.0"
|
||||
},
|
||||
"main": "lib/start.js",
|
||||
"main": "generated/etcher.js",
|
||||
"description": "Flash OS images to SD cards and USB drives, safely and easily.",
|
||||
"productDescription": "Etcher is a powerful OS image flasher built with web technologies to ensure flashing an SDCard or USB drive is a pleasant and safe experience. It protects you from accidentally writing to your hard-drives, ensures every byte of data was written correctly and much more.",
|
||||
"homepage": "https://github.com/balena-io/etcher",
|
||||
@@ -54,13 +54,12 @@
|
||||
"debug": "^3.1.0",
|
||||
"electron-is-running-in-asar": "^1.0.0",
|
||||
"electron-updater": "4.0.6",
|
||||
"etcher-sdk": "^2.0.13",
|
||||
"etcher-sdk": "^2.0.15",
|
||||
"flexboxgrid": "^6.3.0",
|
||||
"immutable": "^3.8.1",
|
||||
"inactivity-timer": "^1.0.0",
|
||||
"lodash": "^4.17.10",
|
||||
"mime-types": "^2.1.18",
|
||||
"nan": "^2.9.2",
|
||||
"node-ipc": "^9.1.1",
|
||||
"path-is-inside": "^1.0.2",
|
||||
"pretty-bytes": "^1.0.4",
|
||||
@@ -78,22 +77,20 @@
|
||||
"styled-system": "^4.1.0",
|
||||
"sudo-prompt": "^9.0.0",
|
||||
"tmp": "^0.1.0",
|
||||
"uuid": "^3.0.1",
|
||||
"xml2js": "^0.4.17"
|
||||
"uuid": "^3.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.2.0",
|
||||
"@babel/core": "^7.6.0",
|
||||
"@babel/plugin-proposal-function-bind": "^7.2.0",
|
||||
"@babel/preset-env": "^7.2.0",
|
||||
"@babel/preset-env": "^7.6.0",
|
||||
"@babel/preset-react": "^7.0.0",
|
||||
"@types/react-dom": "^16.8.4",
|
||||
"acorn": "^6.0.5",
|
||||
"angular-mocks": "1.7.6",
|
||||
"babel-loader": "^8.0.4",
|
||||
"chalk": "^1.1.3",
|
||||
"electron": "3.1.9",
|
||||
"electron": "6.0.10",
|
||||
"electron-builder": "^20.40.2",
|
||||
"electron-mocha": "^6.0.4",
|
||||
"electron-mocha": "^8.1.2",
|
||||
"eslint": "^4.17.0",
|
||||
"eslint-config-standard": "^10.2.1",
|
||||
"eslint-plugin-import": "^2.9.0",
|
||||
@@ -105,13 +102,12 @@
|
||||
"eslint-plugin-standard": "^3.0.1",
|
||||
"html-angular-validate": "^0.2.3",
|
||||
"html-loader": "^0.5.1",
|
||||
"mocha": "^5.0.1",
|
||||
"mocha": "^6.2.1",
|
||||
"mochainon": "^2.0.0",
|
||||
"nock": "^9.2.3",
|
||||
"nan": "^2.9.2",
|
||||
"node-gyp": "^3.8.0",
|
||||
"node-sass": "^4.7.2",
|
||||
"node-sass": "^4.12.0",
|
||||
"omit-deep-lodash": "1.1.4",
|
||||
"pkg": "^4.3.0",
|
||||
"resin-lint": "^3.1.0",
|
||||
"sass-lint": "^1.12.1",
|
||||
"simple-progress-webpack-plugin": "^1.1.2",
|
||||
@@ -119,8 +115,8 @@
|
||||
"ts-loader": "^6.0.4",
|
||||
"ts-node": "^8.3.0",
|
||||
"typescript": "^3.5.3",
|
||||
"webpack": "^4.31.0",
|
||||
"webpack-cli": "^3.1.2",
|
||||
"webpack": "^4.40.2",
|
||||
"webpack-cli": "^3.3.9",
|
||||
"webpack-node-externals": "^1.7.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
--- a/node_modules/node-pre-gyp/lib/util/versioning.js
|
||||
+++ b/node_modules/node-pre-gyp/lib/util/versioning.js
|
||||
@@ -80,7 +80,14 @@ function get_runtime_abi(runtime, target_version) {
|
||||
if (runtime === 'node-webkit') {
|
||||
return get_node_webkit_abi(runtime, target_version || process.versions['node-webkit']);
|
||||
} else if (runtime === 'electron') {
|
||||
- return get_electron_abi(runtime, target_version || process.versions.electron);
|
||||
+ var electron_version = target_version || process.versions.electron;
|
||||
+ if (!electron_version) {
|
||||
+ // TODO PR something to electron to pass in the version number for forks
|
||||
+ // https://github.com/electron/electron/issues/9058
|
||||
+ try { electron_version = require('electron/package.json').version; }
|
||||
+ catch (_) { electron_version = '3.1.9'; }
|
||||
+ }
|
||||
+ return get_electron_abi(runtime, electron_version);
|
||||
} else {
|
||||
if (runtime != 'node') {
|
||||
throw new Error("Unknown Runtime: '" + runtime + "'");
|
||||
@@ -263,7 +270,8 @@ function get_process_runtime(versions) {
|
||||
var runtime = 'node';
|
||||
if (versions['node-webkit']) {
|
||||
runtime = 'node-webkit';
|
||||
- } else if (versions.electron) {
|
||||
+ } else if (versions.electron || process.env.ELECTRON_RUN_AS_NODE) {
|
||||
+ // Running in electron or a childProcess.fork of electron
|
||||
runtime = 'electron';
|
||||
}
|
||||
return runtime;
|
||||
@@ -19,14 +19,9 @@
|
||||
const _ = require('lodash')
|
||||
const m = require('mochainon')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
const utils = require('../../../lib/shared/utils')
|
||||
|
||||
describe('Browser: DriveSelector', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
require('../../../lib/gui/app/components/drive-selector/drive-selector')
|
||||
))
|
||||
|
||||
describe('DriveSelectorController', function () {
|
||||
describe('.memoize()', function () {
|
||||
it('should handle equal angular objects with different hashes', function () {
|
||||
|
||||
@@ -21,7 +21,6 @@ const _ = require('lodash')
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: SVGIcon', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
const m = require('mochainon')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: OSDropzone', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
const m = require('mochainon')
|
||||
const angular = require('angular')
|
||||
const electron = require('electron')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: OSOpenExternal', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
const m = require('mochainon')
|
||||
const fs = require('fs')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: FinishPage', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -25,7 +25,6 @@ const angular = require('angular')
|
||||
const flashState = require('../../../lib/gui/app/models/flash-state')
|
||||
const availableDrives = require('../../../lib/gui/app/models/available-drives')
|
||||
const selectionState = require('../../../lib/gui/app/models/selection-state')
|
||||
require('angular-mocks')
|
||||
|
||||
// Mock HTML requires by reading from the file-system
|
||||
// eslint-disable-next-line node/no-deprecated-api
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
const m = require('mochainon')
|
||||
const fs = require('fs')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: SettingsPage', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
|
||||
const m = require('mochainon')
|
||||
const angular = require('angular')
|
||||
require('angular-mocks')
|
||||
const units = require('../../../lib/shared/units')
|
||||
|
||||
describe('Browser: ByteSize', function () {
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
const m = require('mochainon')
|
||||
const angular = require('angular')
|
||||
const packageJSON = require('../../../package.json')
|
||||
require('angular-mocks')
|
||||
|
||||
describe('Browser: ManifestBind', function () {
|
||||
beforeEach(angular.mock.module(
|
||||
|
||||
@@ -38,7 +38,7 @@ const commonConfig = {
|
||||
options: {
|
||||
presets: [
|
||||
'@babel/preset-react',
|
||||
[ '@babel/preset-env', { targets: { electron: '3' } } ]
|
||||
[ '@babel/preset-env', { targets: { electron: '6' } } ]
|
||||
],
|
||||
plugins: [ '@babel/plugin-proposal-function-bind' ],
|
||||
cacheDirectory: true
|
||||
@@ -145,7 +145,7 @@ const etcherConfig = _.assign({
|
||||
}
|
||||
],
|
||||
entry: {
|
||||
etcher: path.join(__dirname, 'lib', 'gui', 'etcher.js')
|
||||
etcher: path.join(__dirname, 'lib', 'start.js')
|
||||
},
|
||||
output: {
|
||||
path: path.join(__dirname, 'generated'),
|
||||
|
||||
Reference in New Issue
Block a user