mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-22 18:56:31 +00:00
chore: make use of electron-builder to build GNU/Linux packages (#1520)
Change-Type: patch Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
This commit is contained in:
parent
4f87079f12
commit
a7ac28b717
183
Makefile
183
Makefile
@ -26,7 +26,10 @@ COMPANY_NAME = Resinio Ltd
|
||||
APPLICATION_NAME = $(shell jq -r '.build.productName' package.json)
|
||||
APPLICATION_DESCRIPTION = $(shell jq -r '.description' package.json)
|
||||
APPLICATION_COPYRIGHT = $(shell jq -r '.build.copyright' package.json)
|
||||
APPLICATION_FILES = lib,assets
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Release type
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
# Add the current commit to the version if release type is "snapshot"
|
||||
RELEASE_TYPE ?= snapshot
|
||||
@ -141,6 +144,17 @@ endif
|
||||
|
||||
ELECTRON_BUILDER_OPTIONS = --$(TARGET_ARCH_ELECTRON_BUILDER) --extraMetadata.version=$(APPLICATION_VERSION)
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Updates
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS = --extraMetadata.analytics.updates.enabled=false
|
||||
|
||||
ifdef DISABLE_UPDATES
|
||||
$(warning Update notification dialog has been disabled (DISABLE_UPDATES is set))
|
||||
ELECTRON_BUILDER_OPTIONS += $(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
|
||||
endif
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Analytics
|
||||
# ---------------------------------------------------------------------
|
||||
@ -157,21 +171,14 @@ else
|
||||
ELECTRON_BUILDER_OPTIONS += --extraMetadata.analytics.mixpanel.token=$(ANALYTICS_MIXPANEL_TOKEN)
|
||||
endif
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Updates
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
ifdef DISABLE_UPDATES
|
||||
$(warning Update notification dialog has been disabled (DISABLE_UPDATES is set))
|
||||
ELECTRON_BUILDER_OPTIONS += --extraMetadata.updates.enabled=false
|
||||
endif
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Extra variables
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
TARGET_ARCH_DEBIAN = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t debian)
|
||||
TARGET_ARCH_REDHAT = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t redhat)
|
||||
TARGET_ARCH_APPIMAGE = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t appimage)
|
||||
TARGET_ARCH_ELECTRON_BUILDER = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t electron-builder)
|
||||
|
||||
PRODUCT_NAME = etcher
|
||||
APPLICATION_NAME_LOWERCASE = $(shell echo $(APPLICATION_NAME) | tr A-Z a-z)
|
||||
@ -181,8 +188,6 @@ APPLICATION_VERSION_REDHAT = $(shell echo $(APPLICATION_VERSION) | tr "-" "~")
|
||||
# Fix hard link Appveyor issues
|
||||
CPRF = cp -RLf
|
||||
|
||||
TARGET_ARCH_ELECTRON_BUILDER = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t electron-builder)
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Rules
|
||||
# ---------------------------------------------------------------------
|
||||
@ -206,15 +211,9 @@ $(BUILD_TEMPORARY_DIRECTORY): | $(BUILD_DIRECTORY)
|
||||
$(BUILD_OUTPUT_DIRECTORY): | $(BUILD_DIRECTORY)
|
||||
mkdir $@
|
||||
|
||||
$(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
|
||||
| $(BUILD_DIRECTORY)
|
||||
mkdir $@
|
||||
./scripts/build/dependencies-npm.sh -p \
|
||||
-r "$(TARGET_ARCH)" \
|
||||
-v "$(ELECTRON_VERSION)" \
|
||||
-x $@ \
|
||||
-t electron \
|
||||
-s "$(TARGET_PLATFORM)"
|
||||
# ---------------------------------------------------------------------
|
||||
# CLI
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
|
||||
| $(BUILD_DIRECTORY)
|
||||
@ -227,51 +226,6 @@ $(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.
|
||||
-s "$(TARGET_PLATFORM)"
|
||||
git apply --directory $@/node_modules/lzma-native patches/cli/lzma-native-index-static-addon-require.patch
|
||||
|
||||
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app: \
|
||||
$(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
|
||||
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
|
||||
./scripts/build/electron-create-resources-app.sh -s . -o $@ \
|
||||
-v $(APPLICATION_VERSION) \
|
||||
-f "$(APPLICATION_FILES)"
|
||||
$(CPRF) $</* $@
|
||||
|
||||
ifdef ANALYTICS_SENTRY_TOKEN
|
||||
./scripts/build/jq-insert.sh \
|
||||
-p "analytics.sentry.token" \
|
||||
-v "\"$(ANALYTICS_SENTRY_TOKEN)\"" \
|
||||
-f $@/package.json \
|
||||
-t $(BUILD_TEMPORARY_DIRECTORY)
|
||||
endif
|
||||
|
||||
ifdef ANALYTICS_MIXPANEL_TOKEN
|
||||
./scripts/build/jq-insert.sh \
|
||||
-p "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
|
||||
|
||||
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app.asar: \
|
||||
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app \
|
||||
| $(BUILD_DIRECTORY)
|
||||
./scripts/build/electron-create-asar.sh -d $< -o $@
|
||||
|
||||
$(BUILD_DIRECTORY)/electron-$(ELECTRON_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
|
||||
| $(BUILD_DIRECTORY)
|
||||
./scripts/build/electron-download-package.sh \
|
||||
-r "$(TARGET_ARCH)" \
|
||||
-v "$(ELECTRON_VERSION)" \
|
||||
-s "$(TARGET_PLATFORM)" \
|
||||
-o $@
|
||||
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app: \
|
||||
package.json lib \
|
||||
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
|
||||
@ -326,17 +280,19 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH): \
|
||||
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app.asar \
|
||||
$(BUILD_DIRECTORY)/electron-$(ELECTRON_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
|
||||
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
|
||||
ifeq ($(TARGET_PLATFORM),linux)
|
||||
./scripts/build/electron-configure-package-linux.sh -p $(word 2,$^) -a $< \
|
||||
-n "$(APPLICATION_NAME)" \
|
||||
-v "$(APPLICATION_VERSION)" \
|
||||
-l LICENSE \
|
||||
-o $@
|
||||
endif
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/tar-gz-file.sh -f $< -o $@
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# GUI
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
assets/osx/installer.tiff: assets/osx/installer.png assets/osx/installer@2x.png
|
||||
tiffutil -cathidpicheck $^ -out $@
|
||||
@ -353,40 +309,33 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-darwin-$(TA
|
||||
$(NPX) build --mac zip $(ELECTRON_BUILDER_OPTIONS)
|
||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
||||
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
|
||||
APPLICATION_NAME_ELECTRON = $(APPLICATION_NAME_LOWERCASE)-electron
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm: \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
$(NPX) build --linux rpm $(ELECTRON_BUILDER_OPTIONS) \
|
||||
--extraMetadata.name=$(APPLICATION_NAME_ELECTRON) \
|
||||
--extraMetadata.version=$(APPLICATION_VERSION_REDHAT) \
|
||||
$(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
|
||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb: \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
$(NPX) build --linux deb $(ELECTRON_BUILDER_OPTIONS) \
|
||||
--extraMetadata.name=$(APPLICATION_NAME_ELECTRON) \
|
||||
--extraMetadata.version=$(APPLICATION_VERSION_DEBIAN) \
|
||||
$(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
|
||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
||||
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_ARCH_APPIMAGE).AppImage: \
|
||||
| $(BUILD_DIRECTORY)
|
||||
./scripts/build/electron-create-appdir.sh -p $< -o $@ \
|
||||
-n "$(APPLICATION_NAME)" \
|
||||
-d "$(APPLICATION_DESCRIPTION)" \
|
||||
-r "$(TARGET_ARCH)" \
|
||||
-b "$(APPLICATION_NAME_LOWERCASE)" \
|
||||
-i assets/icon.png
|
||||
$(NPX) build --linux AppImage $(ELECTRON_BUILDER_OPTIONS)
|
||||
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppImage: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir \
|
||||
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
|
||||
./scripts/build/electron-create-appimage-linux.sh -d $< -o $@ \
|
||||
-r "$(TARGET_ARCH)" \
|
||||
-w "$(BUILD_TEMPORARY_DIRECTORY)"
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).zip: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppImage \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).zip: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_ARCH_APPIMAGE).AppImage \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/electron-installer-debian-linux.sh -p $< -r "$(TARGET_ARCH)" -o $| \
|
||||
-c scripts/build/debian/config.json
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/electron-installer-redhat-linux.sh -p $< -r "$(TARGET_ARCH)" -o $| \
|
||||
-c scripts/build/redhat/config.json
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-win32-$(TARGET_ARCH)-portable.exe: \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
CSC_LINK=$(CODE_SIGN_CERTIFICATE) CSC_KEY_PASSWORD=$(CODE_SIGN_CERTIFICATE_PASSWORD) TARGET_ARCH=$(TARGET_ARCH) \
|
||||
@ -399,16 +348,6 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-win32-$(TAR
|
||||
$(NPX) build --win nsis $(ELECTRON_BUILDER_OPTIONS)
|
||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
|
||||
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz: \
|
||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||
| $(BUILD_OUTPUT_DIRECTORY)
|
||||
./scripts/build/tar-gz-file.sh -f $< -o $@
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# Phony targets
|
||||
# ---------------------------------------------------------------------
|
||||
@ -459,9 +398,9 @@ PUBLISH_AWS_S3 += \
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_PLATFORM),linux)
|
||||
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
|
||||
electron-installer-debian: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
|
||||
electron-installer-redhat: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm
|
||||
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
|
||||
electron-installer-debian: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
|
||||
electron-installer-redhat: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm
|
||||
cli-installer-tar-gz: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
|
||||
TARGETS += \
|
||||
electron-installer-appimage \
|
||||
@ -469,12 +408,12 @@ TARGETS += \
|
||||
electron-installer-redhat \
|
||||
cli-installer-tar-gz
|
||||
PUBLISH_AWS_S3 += \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
|
||||
PUBLISH_BINTRAY_DEBIAN += \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
|
||||
PUBLISH_BINTRAY_REDHAT += \
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm
|
||||
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_PLATFORM),win32)
|
||||
|
@ -96,12 +96,6 @@ 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
|
||||
---------------------
|
||||
|
||||
|
@ -49,7 +49,13 @@ const DEFAULT_STATE = Immutable.fromJS({
|
||||
errorReporting: true,
|
||||
unmountOnSuccess: true,
|
||||
validateWriteOnSuccess: true,
|
||||
updatesEnabled: Boolean(packageJSON.updates.enabled),
|
||||
|
||||
// The purpose of JSON.parse() is to convert strings such as "false"
|
||||
// into boolean values, given that electron-builder is only able to
|
||||
// inject strings into package.json.
|
||||
// See https://github.com/electron-userland/electron-builder/issues/1674
|
||||
updatesEnabled: Boolean(JSON.parse(packageJSON.updates.enabled)),
|
||||
|
||||
includeUnstableUpdateChannel: !release.isStableRelease(packageJSON.version),
|
||||
lastSleptUpdateNotifier: null,
|
||||
lastSleptUpdateNotifierVersion: null
|
||||
@ -539,7 +545,7 @@ module.exports = _.merge(redux.createStore(
|
||||
// is not very elegant, nor performant, so we decide
|
||||
// to intentionally ignore this little flaw since
|
||||
// adding extra properties makes no damage at all.
|
||||
return state.set(PERSISTED_PATH, subset);
|
||||
return state.set(PERSISTED_PATH, state.get(PERSISTED_PATH).merge(subset));
|
||||
|
||||
}
|
||||
|
||||
|
57
package.json
57
package.json
@ -69,6 +69,63 @@
|
||||
"portable": {
|
||||
"artifactName": "${productName}-${version}-win32-${env.TARGET_ARCH}-portable.${ext}",
|
||||
"requestExecutionLevel": "user"
|
||||
},
|
||||
"linux": {
|
||||
"category": "Utility",
|
||||
"packageCategory": "utils",
|
||||
"executableName": "etcher-electron",
|
||||
"synopsis": "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."
|
||||
},
|
||||
"deb": {
|
||||
"icon": "assets/icon.png",
|
||||
"priority": "optional",
|
||||
"depends": [
|
||||
"gconf2",
|
||||
"gconf-service",
|
||||
"libappindicator1",
|
||||
"libasound2",
|
||||
"libatk1.0-0",
|
||||
"libc6",
|
||||
"libcairo2",
|
||||
"libcups2",
|
||||
"libdbus-1-3",
|
||||
"libexpat1",
|
||||
"libfontconfig1",
|
||||
"libfreetype6",
|
||||
"libgcc1",
|
||||
"libgconf-2-4",
|
||||
"libgdk-pixbuf2.0-0",
|
||||
"libglib2.0-0",
|
||||
"libgtk2.0-0",
|
||||
"liblzma5",
|
||||
"libnotify4",
|
||||
"libnspr4",
|
||||
"libnss3",
|
||||
"libpango1.0-0",
|
||||
"libstdc++6",
|
||||
"libx11-6",
|
||||
"libxcomposite1",
|
||||
"libxcursor1",
|
||||
"libxdamage1",
|
||||
"libxext6",
|
||||
"libxfixes3",
|
||||
"libxi6",
|
||||
"libxrandr2",
|
||||
"libxrender1",
|
||||
"libxss1",
|
||||
"libxtst6",
|
||||
"polkit-1-auth-agent | policykit-1-gnome | polkit-kde-1"
|
||||
]
|
||||
},
|
||||
"rpm": {
|
||||
"icon": "assets/icon.png",
|
||||
"depends": [
|
||||
"lsb",
|
||||
"libXScrnSaver"
|
||||
]
|
||||
},
|
||||
"appimage": {
|
||||
"icon": "assets/icon.png"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
|
@ -71,6 +71,12 @@ elif [ "$ARGV_TYPE" == "debian" ]; then
|
||||
RESULT=armhf
|
||||
fi
|
||||
elif [ "$ARGV_TYPE" == "redhat" ]; then
|
||||
if [ "$ARGV_ARCHITECTURE" == "x86" ]; then
|
||||
RESULT=i686
|
||||
elif [ "$ARGV_ARCHITECTURE" == "x64" ]; then
|
||||
RESULT='x86_64'
|
||||
fi
|
||||
elif [ "$ARGV_TYPE" == "appimage" ]; then
|
||||
if [ "$ARGV_ARCHITECTURE" == "x86" ]; then
|
||||
RESULT=i386
|
||||
elif [ "$ARGV_ARCHITECTURE" == "x64" ]; then
|
||||
|
@ -1,52 +0,0 @@
|
||||
{
|
||||
"name": "etcher-electron",
|
||||
"productName": "Etcher",
|
||||
"genericName": "Etcher",
|
||||
"homepage": "https://etcher.io/",
|
||||
"icon": "assets/icon.png",
|
||||
"bin": "etcher",
|
||||
"categories": [
|
||||
"Utility"
|
||||
],
|
||||
"depends": [
|
||||
"gconf-service",
|
||||
"libasound2",
|
||||
"libatk1.0-0",
|
||||
"libc6",
|
||||
"libcairo2",
|
||||
"libcups2",
|
||||
"libdbus-1-3",
|
||||
"libexpat1",
|
||||
"libfontconfig1",
|
||||
"libfreetype6",
|
||||
"libgcc1",
|
||||
"libgconf-2-4",
|
||||
"libgdk-pixbuf2.0-0",
|
||||
"libglib2.0-0",
|
||||
"libgtk2.0-0",
|
||||
"liblzma5",
|
||||
"libnspr4",
|
||||
"libnss3",
|
||||
"libpango1.0-0",
|
||||
"libstdc++6",
|
||||
"libx11-6",
|
||||
"libxcomposite1",
|
||||
"libxcursor1",
|
||||
"libxdamage1",
|
||||
"libxext6",
|
||||
"libxfixes3",
|
||||
"libxi6",
|
||||
"libxrandr2",
|
||||
"libxrender1",
|
||||
"libxss1",
|
||||
"libxtst6",
|
||||
"polkit-1-auth-agent | policykit-1-gnome | polkit-kde-1"
|
||||
],
|
||||
"recommends": [
|
||||
"libnotify4"
|
||||
],
|
||||
"suggests": [],
|
||||
"lintianOverrides": [
|
||||
"changelog-file-missing-in-native-package"
|
||||
]
|
||||
}
|
@ -14,6 +14,8 @@ RUN apt-get update \
|
||||
curl \
|
||||
fuse \
|
||||
git \
|
||||
graphicsmagick \
|
||||
icnsutils \
|
||||
jq \
|
||||
libasound2 \
|
||||
libgconf-2-4 \
|
||||
@ -28,8 +30,10 @@ RUN apt-get update \
|
||||
python-dev \
|
||||
python-software-properties \
|
||||
unzip \
|
||||
xorriso \
|
||||
xvfb \
|
||||
zip \
|
||||
xz-utils \
|
||||
zip \
|
||||
rpm
|
||||
|
||||
# Install a C++11 compiler
|
||||
@ -45,7 +49,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
RUN npm config set unsafe-perm=true
|
||||
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
|
||||
# Python
|
||||
COPY requirements.txt requirements.txt
|
||||
|
@ -13,6 +13,8 @@ RUN apt-get update \
|
||||
curl \
|
||||
fuse \
|
||||
git \
|
||||
graphicsmagick \
|
||||
icnsutils \
|
||||
jq \
|
||||
libasound2 \
|
||||
libgconf-2-4 \
|
||||
@ -27,8 +29,10 @@ RUN apt-get update \
|
||||
python-dev \
|
||||
python-software-properties \
|
||||
unzip \
|
||||
xorriso \
|
||||
xvfb \
|
||||
zip \
|
||||
xz-utils \
|
||||
zip \
|
||||
rpm
|
||||
|
||||
# Install a C++11 compiler
|
||||
@ -44,7 +48,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
RUN npm config set unsafe-perm=true
|
||||
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
|
||||
# Python
|
||||
COPY requirements.txt requirements.txt
|
||||
|
@ -16,6 +16,8 @@ RUN apt-get update \
|
||||
curl \
|
||||
fuse \
|
||||
git \
|
||||
graphicsmagick \
|
||||
icnsutils \
|
||||
jq \
|
||||
libasound2 \
|
||||
libgconf-2-4 \
|
||||
@ -30,9 +32,10 @@ RUN apt-get update \
|
||||
python-dev \
|
||||
python-software-properties \
|
||||
unzip \
|
||||
xorriso \
|
||||
xvfb \
|
||||
|
||||
zip \
|
||||
xz-utils \
|
||||
zip \
|
||||
rpm
|
||||
|
||||
# Install a C++11 compiler
|
||||
@ -48,7 +51,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
|
||||
RUN npm config set unsafe-perm=true
|
||||
|
||||
RUN npm config set spin=false
|
||||
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
|
||||
RUN npm install -g uglify-es@3.0.3
|
||||
|
||||
# Python
|
||||
COPY requirements.txt requirements.txt
|
||||
|
@ -1,84 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
OS=$(uname)
|
||||
if [[ "$OS" != "Linux" ]]; then
|
||||
echo "This script is only meant to be run in GNU/Linux" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./scripts/build/check-dependency.sh unzip
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -p <electron package>"
|
||||
echo " -n <application name>"
|
||||
echo " -v <application version>"
|
||||
echo " -l <application license file>"
|
||||
echo " -a <application asar (.asar)>"
|
||||
echo " -o <output directory>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_ELECTRON_PACKAGE=""
|
||||
ARGV_APPLICATION_NAME=""
|
||||
ARGV_VERSION=""
|
||||
ARGV_LICENSE=""
|
||||
ARGV_ASAR=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":p:n:v:l:a:o:" option; do
|
||||
case $option in
|
||||
p) ARGV_ELECTRON_PACKAGE="$OPTARG" ;;
|
||||
n) ARGV_APPLICATION_NAME="$OPTARG" ;;
|
||||
v) ARGV_VERSION="$OPTARG" ;;
|
||||
l) ARGV_LICENSE="$OPTARG" ;;
|
||||
a) ARGV_ASAR="$OPTARG" ;;
|
||||
o) ARGV_OUTPUT="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_ELECTRON_PACKAGE" ] \
|
||||
|| [ -z "$ARGV_APPLICATION_NAME" ] \
|
||||
|| [ -z "$ARGV_VERSION" ] \
|
||||
|| [ -z "$ARGV_LICENSE" ] \
|
||||
|| [ -z "$ARGV_ASAR" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
unzip "$ARGV_ELECTRON_PACKAGE" -d "$ARGV_OUTPUT"
|
||||
|
||||
mv $ARGV_OUTPUT/electron $ARGV_OUTPUT/$(echo "$ARGV_APPLICATION_NAME" | tr '[:upper:]' '[:lower:]')
|
||||
cp $ARGV_LICENSE $ARGV_OUTPUT/LICENSE
|
||||
echo "$ARGV_VERSION" > $ARGV_OUTPUT/version
|
||||
rm $ARGV_OUTPUT/resources/default_app.asar
|
||||
|
||||
cp "$ARGV_ASAR" "$ARGV_OUTPUT/resources/app.asar"
|
||||
|
||||
if [ -d "$ARGV_ASAR.unpacked" ]; then
|
||||
cp -rf "$ARGV_ASAR.unpacked" "$ARGV_OUTPUT/resources/app.asar.unpacked"
|
||||
fi
|
@ -1,109 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -n <application name>"
|
||||
echo " -d <application description>"
|
||||
echo " -p <application package>"
|
||||
echo " -r <application architecture>"
|
||||
echo " -b <application binary name>"
|
||||
echo " -i <application icon (.png)>"
|
||||
echo " -o <output>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_APPLICATION_NAME=""
|
||||
ARGV_DESCRIPTION=""
|
||||
ARGV_PACKAGE=""
|
||||
ARGV_ARCHITECTURE=""
|
||||
ARGV_BINARY=""
|
||||
ARGV_ICON=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":n:d:p:r:b:i:o:" option; do
|
||||
case $option in
|
||||
n) ARGV_APPLICATION_NAME="$OPTARG" ;;
|
||||
d) ARGV_DESCRIPTION="$OPTARG" ;;
|
||||
p) ARGV_PACKAGE="$OPTARG" ;;
|
||||
r) ARGV_ARCHITECTURE="$OPTARG" ;;
|
||||
b) ARGV_BINARY="$OPTARG" ;;
|
||||
i) ARGV_ICON="$OPTARG" ;;
|
||||
o) ARGV_OUTPUT="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_APPLICATION_NAME" ] \
|
||||
|| [ -z "$ARGV_DESCRIPTION" ] \
|
||||
|| [ -z "$ARGV_PACKAGE" ] \
|
||||
|| [ -z "$ARGV_ARCHITECTURE" ] \
|
||||
|| [ -z "$ARGV_BINARY" ] \
|
||||
|| [ -z "$ARGV_ICON" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
# Create AppDir
|
||||
mkdir -p "$ARGV_OUTPUT"
|
||||
APPDIR_ICON_FILENAME=icon
|
||||
|
||||
cat >"$ARGV_OUTPUT/$ARGV_APPLICATION_NAME.desktop" <<EOF
|
||||
[Desktop Entry]
|
||||
Name=$ARGV_APPLICATION_NAME
|
||||
Exec=$ARGV_BINARY.wrapper
|
||||
Comment=$ARGV_DESCRIPTION
|
||||
Icon=$APPDIR_ICON_FILENAME
|
||||
Type=Application
|
||||
EOF
|
||||
|
||||
cp "$ARGV_ICON" "$ARGV_OUTPUT/$APPDIR_ICON_FILENAME.png"
|
||||
mkdir -p "$ARGV_OUTPUT/usr/bin"
|
||||
cp -rf "$ARGV_PACKAGE"/* "$ARGV_OUTPUT/usr/bin"
|
||||
|
||||
APPIMAGES_TAG=6
|
||||
APPIMAGES_GITHUB_RAW_BASE_URL=https://raw.githubusercontent.com/probonopd/AppImageKit/$APPIMAGES_TAG
|
||||
APPIMAGES_GITHUB_RELEASE_BASE_URL=https://github.com/probonopd/AppImageKit/releases/download/$APPIMAGES_TAG
|
||||
|
||||
./scripts/build/download-tool.sh -x \
|
||||
-u "$APPIMAGES_GITHUB_RAW_BASE_URL/desktopintegration" \
|
||||
-c "bf321258134fa1290b3b3c005332d2aa04ca241e65c21c16c0ab76e892ef6044" \
|
||||
-o "$ARGV_OUTPUT/usr/bin/$ARGV_BINARY.wrapper"
|
||||
|
||||
if [ "$ARGV_ARCHITECTURE" == "x64" ]; then
|
||||
APPIMAGES_ARCHITECTURE="x86_64"
|
||||
APPRUN_CHECKSUM=28b9c59facd7d0211ef5d825cc00873324cc75163902c48e80e34bf314c910c4
|
||||
elif [ "$ARGV_ARCHITECTURE" == "x86" ]; then
|
||||
APPIMAGES_ARCHITECTURE="i686"
|
||||
APPRUN_CHECKSUM=44a56d8a654891030bab57cee4670550ed550f6c63aa7d82377a25828671088b
|
||||
else
|
||||
echo "Invalid architecture: $ARGV_ARCHITECTURE" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./scripts/build/download-tool.sh -x \
|
||||
-u "$APPIMAGES_GITHUB_RELEASE_BASE_URL/AppRun_$APPIMAGES_TAG-$APPIMAGES_ARCHITECTURE" \
|
||||
-c "$APPRUN_CHECKSUM" \
|
||||
-o "$ARGV_OUTPUT/AppRun"
|
@ -1,85 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
OS=$(uname)
|
||||
if [[ "$OS" != "Linux" ]]; then
|
||||
echo "This script is only meant to be run in GNU/Linux" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -d <appdir>"
|
||||
echo " -r <application architecture>"
|
||||
echo " -w <download directory>"
|
||||
echo " -o <output>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_APPDIR=""
|
||||
ARGV_ARCHITECTURE=""
|
||||
ARGV_DOWNLOAD_DIRECTORY=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":d:r:w:o:" option; do
|
||||
case $option in
|
||||
d) ARGV_APPDIR="$OPTARG" ;;
|
||||
r) ARGV_ARCHITECTURE="$OPTARG" ;;
|
||||
w) ARGV_DOWNLOAD_DIRECTORY="$OPTARG" ;;
|
||||
o) ARGV_OUTPUT="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_APPDIR" ] \
|
||||
|| [ -z "$ARGV_ARCHITECTURE" ] \
|
||||
|| [ -z "$ARGV_DOWNLOAD_DIRECTORY" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
if [ "$ARGV_ARCHITECTURE" == "x64" ]; then
|
||||
APPIMAGES_ARCHITECTURE="x86_64"
|
||||
APPIMAGEASSISTANT_CHECKSUM=e792fa6ba1dd81de6438844fde39aa12d6b6d15238154ec46baf01da1c92d59f
|
||||
elif [ "$ARGV_ARCHITECTURE" == "x86" ]; then
|
||||
APPIMAGES_ARCHITECTURE="i686"
|
||||
APPIMAGEASSISTANT_CHECKSUM=0faade0c009e703c221650e414f3b4ea8d03abbd8b9f1f065aef46156ee15dd0
|
||||
else
|
||||
echo "Invalid architecture: $ARGV_ARCHITECTURE" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
APPIMAGES_TAG=6
|
||||
APPIMAGES_GITHUB_RELEASE_BASE_URL=https://github.com/probonopd/AppImageKit/releases/download/$APPIMAGES_TAG
|
||||
APPIMAGEASSISTANT_PATH=$ARGV_DOWNLOAD_DIRECTORY/AppImageAssistant-$ARGV_ARCHITECTURE.AppImage
|
||||
mkdir -p "$ARGV_DOWNLOAD_DIRECTORY"
|
||||
./scripts/build/download-tool.sh -x \
|
||||
-u "$APPIMAGES_GITHUB_RELEASE_BASE_URL/AppImageAssistant_$APPIMAGES_TAG-$APPIMAGES_ARCHITECTURE.AppImage" \
|
||||
-c "$APPIMAGEASSISTANT_CHECKSUM" \
|
||||
-o "$APPIMAGEASSISTANT_PATH"
|
||||
|
||||
# Generate AppImage
|
||||
mkdir -p "$(dirname "$ARGV_OUTPUT")"
|
||||
$APPIMAGEASSISTANT_PATH "$ARGV_APPDIR" "$ARGV_OUTPUT"
|
@ -1,55 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
ASAR="./node_modules/.bin/asar"
|
||||
|
||||
./scripts/build/check-dependency.sh "$ASAR"
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -d <directory>"
|
||||
echo " -o <output>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_DIRECTORY=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":d:o:" option; do
|
||||
case $option in
|
||||
d) ARGV_DIRECTORY=$OPTARG ;;
|
||||
o) ARGV_OUTPUT=$OPTARG ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_DIRECTORY" ] || [ -z "$ARGV_OUTPUT" ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
# Omit `*.dll` and `*.node` files from the
|
||||
# asar package, otherwise `process.dlopen` and
|
||||
# `module.require` can't load them correctly.
|
||||
"$ASAR" pack "$ARGV_DIRECTORY" "$ARGV_OUTPUT" \
|
||||
--unpack "{*.dll,*.node}"
|
@ -1,64 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
./scripts/build/check-dependency.sh jq
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -s <source directory>"
|
||||
echo " -v <application version>"
|
||||
echo " -f <extra files (comma separated)>"
|
||||
echo " -o <output>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_SOURCE_DIRECTORY=""
|
||||
ARGV_APPLICATION_VERSION=""
|
||||
ARGV_FILES=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":s:v:f:o:" option; do
|
||||
case $option in
|
||||
s) ARGV_SOURCE_DIRECTORY=$OPTARG ;;
|
||||
v) ARGV_APPLICATION_VERSION=$OPTARG ;;
|
||||
f) ARGV_FILES=$OPTARG ;;
|
||||
o) ARGV_OUTPUT=$OPTARG ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_SOURCE_DIRECTORY" ] ||
|
||||
[ -z "$ARGV_APPLICATION_VERSION" ] || \
|
||||
[ -z "$ARGV_FILES" ] || \
|
||||
[ -z "$ARGV_OUTPUT" ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
mkdir -p "$ARGV_OUTPUT"
|
||||
|
||||
jq ".version = \"$ARGV_APPLICATION_VERSION\"" "$ARGV_SOURCE_DIRECTORY/package.json" > "$ARGV_OUTPUT/package.json"
|
||||
|
||||
for file in $(echo "$ARGV_FILES" | sed "s/,/ /g"); do
|
||||
cp -rf "$file" "$ARGV_OUTPUT"
|
||||
done
|
@ -1,68 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
./scripts/build/check-dependency.sh curl
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -r <architecture>"
|
||||
echo " -v <electron version>"
|
||||
echo " -s <electron operating system>"
|
||||
echo " -o <output directory>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_ARCHITECTURE=""
|
||||
ARGV_ELECTRON_VERSION=""
|
||||
ARGV_OPERATING_SYSTEM=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":r:v:s:o:" option; do
|
||||
case $option in
|
||||
r) ARGV_ARCHITECTURE=$OPTARG ;;
|
||||
v) ARGV_ELECTRON_VERSION=$OPTARG ;;
|
||||
s) ARGV_OPERATING_SYSTEM=$OPTARG ;;
|
||||
o) ARGV_OUTPUT=$OPTARG ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_ARCHITECTURE" ] \
|
||||
|| [ -z "$ARGV_ELECTRON_VERSION" ] \
|
||||
|| [ -z "$ARGV_OPERATING_SYSTEM" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
ELECTRON_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t node)
|
||||
ELECTRON_GITHUB_REPOSITORY=https://github.com/electron/electron
|
||||
ELECTRON_DOWNLOADS_BASEURL="$ELECTRON_GITHUB_REPOSITORY/releases/download/v$ARGV_ELECTRON_VERSION"
|
||||
ELECTRON_FILENAME="electron-v$ARGV_ELECTRON_VERSION-$ARGV_OPERATING_SYSTEM-$ELECTRON_ARCHITECTURE.zip"
|
||||
ELECTRON_CHECKSUM=$(curl --location "$ELECTRON_DOWNLOADS_BASEURL/SHASUMS256.txt" | grep "$ELECTRON_FILENAME" | cut -d ' ' -f 1)
|
||||
|
||||
./scripts/build/download-tool.sh \
|
||||
-u "$ELECTRON_DOWNLOADS_BASEURL/$ELECTRON_FILENAME" \
|
||||
-c "$ELECTRON_CHECKSUM" \
|
||||
-o "$ARGV_OUTPUT"
|
@ -1,74 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
OS=$(uname)
|
||||
if [[ "$OS" != "Linux" ]]; then
|
||||
echo "This script is only meant to be run in GNU/Linux" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./scripts/build/check-dependency.sh electron-installer-debian
|
||||
# electron-installer-debian is documented as requiring the fakeroot and dpkg commands
|
||||
./scripts/build/check-dependency.sh fakeroot
|
||||
./scripts/build/check-dependency.sh dpkg
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -p <application directory>"
|
||||
echo " -r <architecture>"
|
||||
echo " -c <debian configuration (.json)>"
|
||||
echo " -o <output directory>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_DIRECTORY=""
|
||||
ARGV_ARCHITECTURE=""
|
||||
ARGV_DEBIAN_CONFIGURATION=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":p:r:c:o:" option; do
|
||||
case $option in
|
||||
p) ARGV_DIRECTORY="$OPTARG" ;;
|
||||
r) ARGV_ARCHITECTURE="$OPTARG" ;;
|
||||
c) ARGV_DEBIAN_CONFIGURATION="$OPTARG" ;;
|
||||
o) ARGV_OUTPUT="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_DIRECTORY" ] \
|
||||
|| [ -z "$ARGV_ARCHITECTURE" ] \
|
||||
|| [ -z "$ARGV_DEBIAN_CONFIGURATION" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
DEBIAN_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t debian)
|
||||
|
||||
electron-installer-debian \
|
||||
--src "$ARGV_DIRECTORY" \
|
||||
--dest "$ARGV_OUTPUT" \
|
||||
--config "$ARGV_DEBIAN_CONFIGURATION" \
|
||||
--arch "$DEBIAN_ARCHITECTURE"
|
@ -1,74 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2017 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
OS=$(uname)
|
||||
if [[ "$OS" != "Linux" ]]; then
|
||||
echo "This script is only meant to be run in GNU/Linux" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./scripts/build/check-dependency.sh electron-installer-redhat
|
||||
|
||||
# electron-installer-redhat is documented as requiring the rpmbuild commands
|
||||
./scripts/build/check-dependency.sh rpmbuild
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -p <application directory>"
|
||||
echo " -r <architecture>"
|
||||
echo " -c <redhat configuration (.json)>"
|
||||
echo " -o <output directory>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_DIRECTORY=""
|
||||
ARGV_ARCHITECTURE=""
|
||||
ARGV_REDHAT_CONFIGURATION=""
|
||||
ARGV_OUTPUT=""
|
||||
|
||||
while getopts ":p:r:c:o:" option; do
|
||||
case $option in
|
||||
p) ARGV_DIRECTORY="$OPTARG" ;;
|
||||
r) ARGV_ARCHITECTURE="$OPTARG" ;;
|
||||
c) ARGV_REDHAT_CONFIGURATION="$OPTARG" ;;
|
||||
o) ARGV_OUTPUT="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_DIRECTORY" ] \
|
||||
|| [ -z "$ARGV_ARCHITECTURE" ] \
|
||||
|| [ -z "$ARGV_REDHAT_CONFIGURATION" ] \
|
||||
|| [ -z "$ARGV_OUTPUT" ]
|
||||
then
|
||||
usage
|
||||
fi
|
||||
|
||||
REDHAT_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t redhat)
|
||||
|
||||
electron-installer-redhat \
|
||||
--src "$ARGV_DIRECTORY" \
|
||||
--dest "$ARGV_OUTPUT" \
|
||||
--config "$ARGV_REDHAT_CONFIGURATION" \
|
||||
--arch "$REDHAT_ARCHITECTURE"
|
@ -1,60 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
###
|
||||
# Copyright 2016 resin.io
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
###
|
||||
|
||||
set -u
|
||||
set -e
|
||||
|
||||
./scripts/build/check-dependency.sh jq
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0"
|
||||
echo ""
|
||||
echo "Options"
|
||||
echo ""
|
||||
echo " -p <property>"
|
||||
echo " -v <value>"
|
||||
echo " -f <file>"
|
||||
echo " -t <temporary directory>"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ARGV_PROPERTY=""
|
||||
ARGV_VALUE=""
|
||||
ARGV_FILE=""
|
||||
ARGV_TEMPORARY_DIRECTORY=""
|
||||
|
||||
while getopts ":p:v:f:t:" option; do
|
||||
case $option in
|
||||
p) ARGV_PROPERTY=$OPTARG ;;
|
||||
v) ARGV_VALUE=$OPTARG ;;
|
||||
f) ARGV_FILE=$OPTARG ;;
|
||||
t) ARGV_TEMPORARY_DIRECTORY="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$ARGV_PROPERTY" ] ||
|
||||
[ -z "$ARGV_VALUE" ] ||
|
||||
[ -z "$ARGV_FILE" ] ||
|
||||
[ -z "$ARGV_TEMPORARY_DIRECTORY" ]; then
|
||||
usage
|
||||
fi
|
||||
|
||||
TEMPORARY_FILE="$ARGV_TEMPORARY_DIRECTORY/$(basename "$ARGV_FILE").TMP"
|
||||
cat "$ARGV_FILE" | jq ".$ARGV_PROPERTY=$ARGV_VALUE" > "$TEMPORARY_FILE"
|
||||
mv "$TEMPORARY_FILE" "$ARGV_FILE"
|
@ -1,15 +0,0 @@
|
||||
{
|
||||
"name": "etcher-electron",
|
||||
"productName": "Etcher",
|
||||
"genericName": "Etcher",
|
||||
"homepage": "https://etcher.io/",
|
||||
"icon": "assets/icon.png",
|
||||
"bin": "etcher",
|
||||
"categories": [
|
||||
"Utility"
|
||||
],
|
||||
"requires": [
|
||||
"lsb",
|
||||
"libXScrnSaver"
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user