This adds the capability to configure settings via a `.etcher.json` file,
either in the user's home directory, or the current working directory.
In the case of the home directory, the config file is `$HOME/.config/etcher/config.json`,
while on Windows `$HOME/.etcher.json` is used.
The defined settings are merged with localStorage settings, and preceding
configuration files.
If both are present, the current working directory takes precedence.
Change-Type: minor
Changelog-Entry: Add support for configuration files
We add an environment variable `ETCHER_BLACKLISTED_DRIVES` that allows
us to filter certain drives from ever showing up in Etcher with comma
separated device paths, e.g. `/dev/sda,/dev/sdb,/dev/mmcblk0`.
Closes: https://github.com/resin-io/etcher/issues/2264
Change-Type: patch
Changelog-Entry: Allow blacklisting of drives through and environment
variable ETCHER_BLACKLISTED_DRIVES.
We add a list of selected drives below the drive selection step, able to
accommodate four lines of drives before scrolling occurs.
Closes: https://github.com/resin-io/etcher/issues/2263
Change-Type: patch
Changelog-Entry: Show selected drives below drive selection step.
We make the analytics block into a function `handleErrorLogging` and
use it in the fail event that happens during multi-writes. Previously
error events would be handled when single drives were flashed on Promise
rejection, instead we now only handle the Promise rejection when all
devices fail as a special event.
Change-Type: patch
Changelog-Entry: Fix multi-writes analytics by reusing existing logic in
multi-write events.
We make the finish notification message print the device name as usual
when there's one target, and instead list quantity of successful and
failed devices when there are multiple. Previously it would list all
device names, and wouldn't specify how many were successful or failures.
Change-Type: patch
We remove success screen dots that are zero, which mainly means that the
error dot disappears as it shouldn't currently be possible to end up
with zero successful devices on that screen.
Change-Type: patch
This fixes a state where the success screen would display
zero succeeded and zero failed devices if verification was
turned off. This could occur due to the "done" event being
emitted before the next progress event could set the relevant data.
Change-Type: patch
This moves the usbboot blob handling into the SDK to avoid
root dirname conflicts through shimmed __dirname in bundled UI
and different contexts of execution.
Change-Type: patch
`_.isError()` returns `true` for anything that has a `name` and `message`
property, causing the check here to always keep the plain object as error.
Change-Type: patch
We fallback to `'Untitled Device'` when the device lacks a
`.description` field.
Change-Type: patch
Changelog-Entry: Display Untitled Device when the device lacks a
description field.
We display the quantity of succeeded and failed devices using status
dots on the finish screen.
Change-Type: patch
Changelog-Entry: Display succeeded and failed device quantities on the
finish screen.
We remove usage of the status dots except when failed devices occur, in
which case we still display the red failed dot and quantity. We also use
singular and plural depending on the quantity of failed devices.
Change-Type: patch
This fixes the use and handling of events in the write pipeline,
such that the pipeline would not be prematurely stalled or terminated.
Also, a new `fail` event is introduced, to signal non-fatal errors.
Change-Type: patch
We move the drive selector warning to the flash step, and concatenate
warning messages when more than one needs to be displayed at once.
Change-Type: patch
Changelog-Entry: Move the drive selector warning dialog to the flash step.
Due to improper command escaping, cmd metacharacters lead to failure
in spawning the child writer process on Windows when the entire environment
is passed through the command line. The user's environment will still
be inherited by default on Windows.
Change-Type: patch
We expose all the flash state fields to the store, and mirror
`speed`'s format with `totalSpeed` with MB as the size unit.
We also format the progress state messages to use information
available with multiwrites.
Change-Type: patch
Changelog-Entry: Expose all flash state fields to the store.
We line wrap the main-page image and drive size labels as a whole
instead of partially, if the drive or image title is long enough for a
line wrap.
Change-Type: patch
Changelog-Entry: Line wrap selector size subtitles wholly
We hide the size label when there are multiple selected devices, as this
doesn't make sense because you could only logically show the sum size,
which isn't very helpful on its own.
Change-Type: patch
Changelog-Entry: Hide the size label given multiple devices.
We remove our dependency on the `middle-ellipses` package and include
and expose the function in `lib/shared/utils`, alongside the regular
Angular filter it exposes. This allows use of the middle ellipsis
method in React.
Change-Type: patch
Changelog-Entry: Inline middle-ellipsis package as util.
We use the `app.asar` relative path to read the usbboot blob files
instead of relative to the normal project root.
Change-Type: patch
Changelog-Entry: Use correct usbboot blob path in AppImages.
We ensure the status dots don't move about and stick to their position
by using absolute positioning relative to its parent element.
Change-Type: patch
Changelog-Entry: Fix status dots to their position.
We add some preparatory changes including new utility functions, as well
as changes throughout the codebase that reflect the change from single
drives to a list of drives, given multi-writes is coming.
Change-Type: patch
Changelog-Entry: Various preparatory changes to account for
multi-writes.