mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-24 03:36:36 +00:00
refactor(GUI): move ETCHER_DISABLE_UPDATES into package.json (#1501)
Etcher supports disabling the update notification dialog by setting the `ETCHER_DISABLE_UPDATES` environment variable. In order to simplify disabling updates for when these are managed by a package manager (e.g. in a debian package), this removes support for the `ETCHER_DISABLE_UPDATES` environment variable, and instead requires packagers to tweak the `updates.enabled` property of the package.json file, which is set to `true` by default. We don't want to encourage end users to disable the update mechanism, so the documention was removed from `USER-DOCUMENTATION.md`. This option will remain as something only packagers should tweak. Change-Type: minor Changelog-Entry: Remove support for the `ETCHER_DISABLE_UPDATES` environment variable. Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
This commit is contained in:
parent
22be831535
commit
15b178a158
20
Makefile
20
Makefile
@ -149,6 +149,14 @@ ifndef ANALYTICS_MIXPANEL_TOKEN
|
||||
$(warning No Mixpanel token found (ANALYTICS_MIXPANEL_TOKEN is not set))
|
||||
endif
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Updates
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
ifdef DISABLE_UPDATES
|
||||
$(warning Update notification dialog has been disabled (DISABLE_UPDATES is set))
|
||||
endif
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Extra variables
|
||||
# ---------------------------------------------------------------------
|
||||
@ -219,7 +227,7 @@ $(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(APPLICATION_VERSION)-$(TARGET_A
|
||||
ifdef ANALYTICS_SENTRY_TOKEN
|
||||
./scripts/build/jq-insert.sh \
|
||||
-p "analytics.sentry.token" \
|
||||
-v "$(ANALYTICS_SENTRY_TOKEN)" \
|
||||
-v "\"$(ANALYTICS_SENTRY_TOKEN)\"" \
|
||||
-f $@/package.json \
|
||||
-t $(BUILD_TEMPORARY_DIRECTORY)
|
||||
endif
|
||||
@ -227,7 +235,15 @@ endif
|
||||
ifdef ANALYTICS_MIXPANEL_TOKEN
|
||||
./scripts/build/jq-insert.sh \
|
||||
-p "analytics.mixpanel.token" \
|
||||
-v "$(ANALYTICS_MIXPANEL_TOKEN)" \
|
||||
-v "\"$(ANALYTICS_MIXPANEL_TOKEN)\"" \
|
||||
-f $@/package.json \
|
||||
-t $(BUILD_TEMPORARY_DIRECTORY)
|
||||
endif
|
||||
|
||||
ifdef DISABLE_UPDATES
|
||||
./scripts/build/jq-insert.sh \
|
||||
-p "updates.enabled" \
|
||||
-v "false" \
|
||||
-f $@/package.json \
|
||||
-t $(BUILD_TEMPORARY_DIRECTORY)
|
||||
endif
|
||||
|
@ -96,6 +96,12 @@ make electron-installer-zip
|
||||
make electron-installer-nsis
|
||||
```
|
||||
|
||||
Disabling updates
|
||||
-----------------
|
||||
|
||||
You can disable updates in the final artifact by passing `DISABLE_UPDATES=1` to
|
||||
the `make` targets described above.
|
||||
|
||||
Publishing to Bintray
|
||||
---------------------
|
||||
|
||||
|
@ -130,25 +130,6 @@ run Etcher on a GNU/Linux system.
|
||||
|
||||
- liblzma (for xz decompression)
|
||||
|
||||
Disable update notifications
|
||||
----------------------------
|
||||
|
||||
You can disable update notifications, which can be useful when running Etcher
|
||||
outside a common desktop environment (like in a [resin.io] application), by
|
||||
setting the `ETCHER_DISABLE_UPDATES` environment variable.
|
||||
|
||||
In GNU/Linux and Mac OS X:
|
||||
|
||||
```sh
|
||||
export ETCHER_DISABLE_UPDATES=1
|
||||
```
|
||||
|
||||
In Windows:
|
||||
|
||||
```sh
|
||||
set ETCHER_DISABLE_UPDATES=1
|
||||
```
|
||||
|
||||
Simulate an update alert
|
||||
------------------------
|
||||
|
||||
|
@ -29,7 +29,6 @@ var angular = require('angular');
|
||||
const electron = require('electron');
|
||||
const Bluebird = require('bluebird');
|
||||
const semver = require('semver');
|
||||
const _ = require('lodash');
|
||||
const EXIT_CODES = require('../shared/exit-codes');
|
||||
const messages = require('../shared/messages');
|
||||
const s3Packages = require('../shared/s3-packages');
|
||||
@ -98,14 +97,12 @@ app.run((ErrorService) => {
|
||||
});
|
||||
|
||||
const currentReleaseType = release.getReleaseType(currentVersion);
|
||||
const updatesEnabled = settings.get('updatesEnabled');
|
||||
|
||||
if (_.some([
|
||||
!shouldCheckForUpdates,
|
||||
process.env.ETCHER_DISABLE_UPDATES
|
||||
])) {
|
||||
if (!shouldCheckForUpdates || !updatesEnabled) {
|
||||
analytics.logEvent('Not checking for updates', {
|
||||
shouldCheckForUpdates,
|
||||
disableUpdatesEnvironmentVariable: process.env.ETCHER_DISABLE_UPDATES,
|
||||
updatesEnabled,
|
||||
releaseType: currentReleaseType
|
||||
});
|
||||
return;
|
||||
|
@ -49,6 +49,7 @@ const DEFAULT_STATE = Immutable.fromJS({
|
||||
errorReporting: true,
|
||||
unmountOnSuccess: true,
|
||||
validateWriteOnSuccess: true,
|
||||
updatesEnabled: Boolean(packageJSON.updates.enabled),
|
||||
includeUnstableUpdateChannel: !release.isStableRelease(packageJSON.version),
|
||||
lastSleptUpdateNotifier: null,
|
||||
lastSleptUpdateNotifierVersion: null
|
||||
|
@ -55,13 +55,6 @@ module.exports = function(WarningModalService, ErrorService) {
|
||||
*/
|
||||
this.model = settings;
|
||||
|
||||
/**
|
||||
* @summary Environment
|
||||
* @type {Object}
|
||||
* @public
|
||||
*/
|
||||
this.disableUpdates = Boolean(process.env.ETCHER_DISABLE_UPDATES);
|
||||
|
||||
/**
|
||||
* @summary Toggle setting
|
||||
* @function
|
||||
|
@ -40,7 +40,7 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="checkbox" ng-hide="settings.disableUpdates">
|
||||
<div class="checkbox" ng-show="settings.model.get('updatesEnabled')">
|
||||
<label>
|
||||
<input type="checkbox"
|
||||
ng-model="settings.currentData.includeUnstableUpdateChannel"
|
||||
|
@ -2,6 +2,7 @@
|
||||
"name": "etcher",
|
||||
"version": "1.0.0",
|
||||
"updates": {
|
||||
"enabled": true,
|
||||
"sleepDays": 7,
|
||||
"semverRange": "<2.0.0"
|
||||
},
|
||||
|
@ -4,7 +4,7 @@
|
||||
"genericName": "Etcher",
|
||||
"homepage": "https://etcher.io/",
|
||||
"icon": "assets/icon.png",
|
||||
"bin": "etcher-electron.sh",
|
||||
"bin": "etcher",
|
||||
"categories": [
|
||||
"Utility"
|
||||
],
|
||||
|
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
export ETCHER_DISABLE_UPDATES=1
|
||||
/usr/lib/etcher-electron/etcher "$@"
|
@ -67,10 +67,8 @@ fi
|
||||
|
||||
DEBIAN_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t debian)
|
||||
|
||||
cp scripts/build/debian/etcher-electron.sh "$ARGV_DIRECTORY"
|
||||
electron-installer-debian \
|
||||
--src "$ARGV_DIRECTORY" \
|
||||
--dest "$ARGV_OUTPUT" \
|
||||
--config "$ARGV_DEBIAN_CONFIGURATION" \
|
||||
--arch "$DEBIAN_ARCHITECTURE"
|
||||
rm "$ARGV_DIRECTORY/etcher-electron.sh"
|
||||
|
@ -67,10 +67,8 @@ fi
|
||||
|
||||
REDHAT_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t redhat)
|
||||
|
||||
cp scripts/build/redhat/etcher-electron.sh "$ARGV_DIRECTORY"
|
||||
electron-installer-redhat \
|
||||
--src "$ARGV_DIRECTORY" \
|
||||
--dest "$ARGV_OUTPUT" \
|
||||
--config "$ARGV_REDHAT_CONFIGURATION" \
|
||||
--arch "$REDHAT_ARCHITECTURE"
|
||||
rm "$ARGV_DIRECTORY/etcher-electron.sh"
|
||||
|
@ -56,5 +56,5 @@ if [ -z "$ARGV_PROPERTY" ] ||
|
||||
fi
|
||||
|
||||
TEMPORARY_FILE="$ARGV_TEMPORARY_DIRECTORY/$(basename "$ARGV_FILE").TMP"
|
||||
cat "$ARGV_FILE" | jq ".$ARGV_PROPERTY=\"$ARGV_VALUE\"" > "$TEMPORARY_FILE"
|
||||
cat "$ARGV_FILE" | jq ".$ARGV_PROPERTY=$ARGV_VALUE" > "$TEMPORARY_FILE"
|
||||
mv "$TEMPORARY_FILE" "$ARGV_FILE"
|
||||
|
@ -4,7 +4,7 @@
|
||||
"genericName": "Etcher",
|
||||
"homepage": "https://etcher.io/",
|
||||
"icon": "assets/icon.png",
|
||||
"bin": "etcher-electron.sh",
|
||||
"bin": "etcher",
|
||||
"categories": [
|
||||
"Utility"
|
||||
],
|
||||
|
@ -1,4 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
export ETCHER_DISABLE_UPDATES=1
|
||||
/usr/share/etcher-electron/etcher "$@"
|
Loading…
x
Reference in New Issue
Block a user