Merge pull request #3394 from balena-io/114

114
This commit is contained in:
bulldozer-balena[bot] 2021-01-15 12:28:31 +00:00 committed by GitHub
commit 99df53098c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 2740 additions and 6434 deletions

2
FAQ.md
View File

@ -37,7 +37,7 @@ modules=xwayland.so
Sometimes, things might go wrong, and you end up with a half-flashed drive that is unusable by your operating systems, and common graphical tools might even refuse to get it back to a normal state.
To solve these kinds of problems, we've collected [a list of fail-proof methods](https://github.com/balena-io/etcher/blob/master/docs/USER-DOCUMENTATION.md#recovering-broken-drives) to completely erase your drive in major operating systems.
## I receive ”No polkit authentication agent found” error in GNU/Linux
## I receive "No polkit authentication agent found" error in GNU/Linux
Etcher requires an available [polkit authentication agent](https://wiki.archlinux.org/index.php/Polkit#Authentication_agents) in your system in order to show a secure password prompt dialog to perform elevation. Make sure you have one installed for the desktop environment of your choice.

View File

@ -54,7 +54,6 @@ deb:
depends:
- gconf2
- gconf-service
- libappindicator1
- libasound2
- libatk1.0-0
- libc6

View File

@ -31,9 +31,7 @@ interface ReducedFlashingInfosProps {
style?: React.CSSProperties;
}
export class ReducedFlashingInfos extends React.Component<
ReducedFlashingInfosProps
> {
export class ReducedFlashingInfos extends React.Component<ReducedFlashingInfosProps> {
constructor(props: ReducedFlashingInfosProps) {
super(props);
this.state = {};

View File

@ -14,6 +14,7 @@
* limitations under the License.
*/
import * as electron from 'electron';
import * as sdk from 'etcher-sdk';
import * as _ from 'lodash';
@ -45,6 +46,8 @@ export function isFlashing(): boolean {
* start a flash process.
*/
export function setFlashingFlag() {
// see https://github.com/balenablocks/balena-electron-env/blob/4fce9c461f294d4a768db8f247eea6f75d7b08b0/README.md#remote-methods
electron.ipcRenderer.send('disable-screensaver');
store.dispatch({
type: Actions.SET_FLASHING_FLAG,
data: {},
@ -66,6 +69,8 @@ export function unsetFlashingFlag(results: {
type: Actions.UNSET_FLASHING_FLAG,
data: results,
});
// see https://github.com/balenablocks/balena-electron-env/blob/4fce9c461f294d4a768db8f247eea6f75d7b08b0/README.md#remote-methods
electron.ipcRenderer.send('enable-screensaver');
}
export function setDevicePaths(devicePaths: string[]) {

View File

@ -272,7 +272,7 @@ export async function flash(
throw new Error('There is already a flash in progress');
}
flashState.setFlashingFlag();
await flashState.setFlashingFlag();
flashState.setDevicePaths(
drives.map((d) => d.devicePath).filter((p) => p != null) as string[],
);
@ -290,9 +290,12 @@ export async function flash(
try {
const result = await write(image, drives, flashState.setProgressState);
flashState.unsetFlashingFlag(result);
await flashState.unsetFlashingFlag(result);
} catch (error) {
flashState.unsetFlashingFlag({ cancelled: false, errorCode: error.code });
await flashState.unsetFlashingFlag({
cancelled: false,
errorCode: error.code,
});
windowProgress.clear();
const { results = {} } = flashState.getFlashResults();
const eventData = {

View File

@ -123,7 +123,7 @@ export const warning = {
},
largeDriveSize: () => {
return 'This is a large drive! Make sure it doesn\'t contain files that you want to keep.';
return "This is a large drive! Make sure it doesn't contain files that you want to keep.";
},
systemDrive: () => {

9109
npm-shrinkwrap.json generated

File diff suppressed because it is too large Load Diff

View File

@ -50,25 +50,25 @@
"winusb-driver-generator"
],
"devDependencies": {
"@balena/lint": "^5.0.4",
"@balena/lint": "^5.3.0",
"@fortawesome/fontawesome-free": "^5.13.1",
"@svgr/webpack": "^5.4.0",
"@svgr/webpack": "^5.5.0",
"@types/chai": "^4.2.7",
"@types/copy-webpack-plugin": "^6.0.0",
"@types/mime-types": "^2.1.0",
"@types/mini-css-extract-plugin": "^0.9.1",
"@types/mini-css-extract-plugin": "^1.2.2",
"@types/mocha": "^8.0.3",
"@types/node": "^12.12.39",
"@types/node-ipc": "^9.1.2",
"@types/react-dom": "^16.8.4",
"@types/semver": "^7.1.0",
"@types/sinon": "^9.0.0",
"@types/terser-webpack-plugin": "^4.1.0",
"@types/terser-webpack-plugin": "^5.0.2",
"@types/tmp": "^0.2.0",
"@types/webpack-node-externals": "^2.5.0",
"chai": "^4.2.0",
"copy-webpack-plugin": "^6.0.1",
"css-loader": "^4.2.1",
"copy-webpack-plugin": "^7.0.0",
"css-loader": "^5.0.1",
"d3": "^4.13.0",
"debug": "^4.2.0",
"electron": "9.4.0",
@ -77,13 +77,13 @@
"electron-notarize": "^1.0.0",
"electron-rebuild": "^2.3.2",
"electron-updater": "^4.3.5",
"etcher-sdk": "^5.1.11",
"file-loader": "^6.0.0",
"etcher-sdk": "^5.1.12",
"file-loader": "^6.2.0",
"husky": "^4.2.5",
"immutable": "^3.8.1",
"lint-staged": "^10.2.2",
"lodash": "^4.17.10",
"mini-css-extract-plugin": "^0.10.0",
"mini-css-extract-plugin": "^1.3.3",
"mocha": "^8.0.1",
"native-addon-loader": "^2.0.1",
"node-ipc": "^9.1.1",
@ -94,23 +94,24 @@
"react": "^16.8.5",
"react-dom": "^16.8.5",
"redux": "^4.0.5",
"rendition": "^18.8.3",
"rendition": "^19.2.0",
"resin-corvus": "^2.0.5",
"semver": "^7.3.2",
"simple-progress-webpack-plugin": "^1.1.2",
"sinon": "^9.0.2",
"spectron": "^11.0.0",
"string-replace-loader": "^2.3.0",
"string-replace-loader": "^3.0.1",
"styled-components": "^5.1.0",
"sudo-prompt": "github:zvin/sudo-prompt#7cdede2f0da28fbcc2db48402d7d935f3a825c91",
"sys-class-rgb-led": "^3.0.0",
"tmp": "^0.2.1",
"ts-loader": "^8.0.0",
"ts-loader": "^8.0.12",
"ts-node": "^9.0.0",
"tslib": "^2.0.0",
"typescript": "^4.1.2",
"uuid": "^8.1.0",
"webpack": "^4.40.2",
"webpack-cli": "^3.3.9"
}
"webpack": "^5.11.0",
"webpack-cli": "^4.2.0"
},
"dependencies": {}
}

@ -1 +1 @@
Subproject commit 02c8c7ca1ffdcaf5c8d566c4fb91e869f9223ab8
Subproject commit 214ddc7e3d35f7c37424c5a7696e33b10e424f43

View File

@ -32,8 +32,7 @@ import { BannerPlugin, NormalModuleReplacementPlugin } from 'webpack';
*/
function externalPackageJson(packageJsonPath: string) {
return (
_context: string,
request: string,
{ request }: { context: string; request: string },
callback: (error?: Error | null, result?: string) => void,
) => {
if (_.endsWith(request, 'package.json')) {
@ -50,8 +49,7 @@ function platformSpecificModule(
) {
// Resolves module on platform, otherwise resolves the replacement
return (
_context: string,
request: string,
{ request }: { context: string; request: string },
callback: (error?: Error, result?: string, type?: string) => void,
) => {
if (request === module && os.platform() !== platform) {
@ -276,7 +274,7 @@ const commonConfig = {
format: process.env.WEBPACK_PROGRESS || 'verbose',
}),
// Force axios to use http.js, not xhr.js as we need stream support
// (it's package.json file replaces http with xhr for browser targets).
// (its package.json file replaces http with xhr for browser targets).
new NormalModuleReplacementPlugin(
slashOrAntislash(/node_modules\/axios\/lib\/adapters\/xhr\.js/),
'./http.js',
@ -406,6 +404,7 @@ const cssConfig = {
index: path.join(__dirname, 'lib', 'gui', 'app', 'css', 'main.css'),
},
output: {
publicPath: '',
path: path.join(__dirname, 'generated'),
},
};