mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-24 11:46: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_NAME = $(shell jq -r '.build.productName' package.json)
|
||||||
APPLICATION_DESCRIPTION = $(shell jq -r '.description' package.json)
|
APPLICATION_DESCRIPTION = $(shell jq -r '.description' package.json)
|
||||||
APPLICATION_COPYRIGHT = $(shell jq -r '.build.copyright' 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"
|
# Add the current commit to the version if release type is "snapshot"
|
||||||
RELEASE_TYPE ?= snapshot
|
RELEASE_TYPE ?= snapshot
|
||||||
@ -141,6 +144,17 @@ endif
|
|||||||
|
|
||||||
ELECTRON_BUILDER_OPTIONS = --$(TARGET_ARCH_ELECTRON_BUILDER) --extraMetadata.version=$(APPLICATION_VERSION)
|
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
|
# Analytics
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
@ -157,21 +171,14 @@ else
|
|||||||
ELECTRON_BUILDER_OPTIONS += --extraMetadata.analytics.mixpanel.token=$(ANALYTICS_MIXPANEL_TOKEN)
|
ELECTRON_BUILDER_OPTIONS += --extraMetadata.analytics.mixpanel.token=$(ANALYTICS_MIXPANEL_TOKEN)
|
||||||
endif
|
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
|
# Extra variables
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
|
|
||||||
TARGET_ARCH_DEBIAN = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t debian)
|
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_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
|
PRODUCT_NAME = etcher
|
||||||
APPLICATION_NAME_LOWERCASE = $(shell echo $(APPLICATION_NAME) | tr A-Z a-z)
|
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
|
# Fix hard link Appveyor issues
|
||||||
CPRF = cp -RLf
|
CPRF = cp -RLf
|
||||||
|
|
||||||
TARGET_ARCH_ELECTRON_BUILDER = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t electron-builder)
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
# Rules
|
# Rules
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
@ -206,15 +211,9 @@ $(BUILD_TEMPORARY_DIRECTORY): | $(BUILD_DIRECTORY)
|
|||||||
$(BUILD_OUTPUT_DIRECTORY): | $(BUILD_DIRECTORY)
|
$(BUILD_OUTPUT_DIRECTORY): | $(BUILD_DIRECTORY)
|
||||||
mkdir $@
|
mkdir $@
|
||||||
|
|
||||||
$(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
|
# ---------------------------------------------------------------------
|
||||||
| $(BUILD_DIRECTORY)
|
# CLI
|
||||||
mkdir $@
|
# ---------------------------------------------------------------------
|
||||||
./scripts/build/dependencies-npm.sh -p \
|
|
||||||
-r "$(TARGET_ARCH)" \
|
|
||||||
-v "$(ELECTRON_VERSION)" \
|
|
||||||
-x $@ \
|
|
||||||
-t electron \
|
|
||||||
-s "$(TARGET_PLATFORM)"
|
|
||||||
|
|
||||||
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
|
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
|
||||||
| $(BUILD_DIRECTORY)
|
| $(BUILD_DIRECTORY)
|
||||||
@ -227,51 +226,6 @@ $(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.
|
|||||||
-s "$(TARGET_PLATFORM)"
|
-s "$(TARGET_PLATFORM)"
|
||||||
git apply --directory $@/node_modules/lzma-native patches/cli/lzma-native-index-static-addon-require.patch
|
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: \
|
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app: \
|
||||||
package.json lib \
|
package.json lib \
|
||||||
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
|
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
|
||||||
@ -326,17 +280,19 @@ endif
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH): \
|
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
|
||||||
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app.asar \
|
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||||
$(BUILD_DIRECTORY)/electron-$(ELECTRON_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
|
| $(BUILD_OUTPUT_DIRECTORY)
|
||||||
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
|
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
|
||||||
ifeq ($(TARGET_PLATFORM),linux)
|
|
||||||
./scripts/build/electron-configure-package-linux.sh -p $(word 2,$^) -a $< \
|
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz: \
|
||||||
-n "$(APPLICATION_NAME)" \
|
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
|
||||||
-v "$(APPLICATION_VERSION)" \
|
| $(BUILD_OUTPUT_DIRECTORY)
|
||||||
-l LICENSE \
|
./scripts/build/tar-gz-file.sh -f $< -o $@
|
||||||
-o $@
|
|
||||||
endif
|
# ---------------------------------------------------------------------
|
||||||
|
# GUI
|
||||||
|
# ---------------------------------------------------------------------
|
||||||
|
|
||||||
assets/osx/installer.tiff: assets/osx/installer.png assets/osx/installer@2x.png
|
assets/osx/installer.tiff: assets/osx/installer.png assets/osx/installer@2x.png
|
||||||
tiffutil -cathidpicheck $^ -out $@
|
tiffutil -cathidpicheck $^ -out $@
|
||||||
@ -353,40 +309,33 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-darwin-$(TA
|
|||||||
$(NPX) build --mac zip $(ELECTRON_BUILDER_OPTIONS)
|
$(NPX) build --mac zip $(ELECTRON_BUILDER_OPTIONS)
|
||||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
||||||
|
|
||||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir: \
|
APPLICATION_NAME_ELECTRON = $(APPLICATION_NAME_LOWERCASE)-electron
|
||||||
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
|
|
||||||
|
$(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)
|
| $(BUILD_DIRECTORY)
|
||||||
./scripts/build/electron-create-appdir.sh -p $< -o $@ \
|
$(NPX) build --linux AppImage $(ELECTRON_BUILDER_OPTIONS)
|
||||||
-n "$(APPLICATION_NAME)" \
|
|
||||||
-d "$(APPLICATION_DESCRIPTION)" \
|
|
||||||
-r "$(TARGET_ARCH)" \
|
|
||||||
-b "$(APPLICATION_NAME_LOWERCASE)" \
|
|
||||||
-i assets/icon.png
|
|
||||||
|
|
||||||
$(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)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir \
|
$(BUILD_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_ARCH_APPIMAGE).AppImage \
|
||||||
| $(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)
|
| $(BUILD_OUTPUT_DIRECTORY)
|
||||||
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
|
./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)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-win32-$(TARGET_ARCH)-portable.exe: \
|
||||||
| $(BUILD_OUTPUT_DIRECTORY)
|
| $(BUILD_OUTPUT_DIRECTORY)
|
||||||
CSC_LINK=$(CODE_SIGN_CERTIFICATE) CSC_KEY_PASSWORD=$(CODE_SIGN_CERTIFICATE_PASSWORD) TARGET_ARCH=$(TARGET_ARCH) \
|
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)
|
$(NPX) build --win nsis $(ELECTRON_BUILDER_OPTIONS)
|
||||||
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
|
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
|
# Phony targets
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
@ -459,9 +398,9 @@ PUBLISH_AWS_S3 += \
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_PLATFORM),linux)
|
ifeq ($(TARGET_PLATFORM),linux)
|
||||||
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
|
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(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-debian: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_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-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
|
cli-installer-tar-gz: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
|
||||||
TARGETS += \
|
TARGETS += \
|
||||||
electron-installer-appimage \
|
electron-installer-appimage \
|
||||||
@ -469,12 +408,12 @@ TARGETS += \
|
|||||||
electron-installer-redhat \
|
electron-installer-redhat \
|
||||||
cli-installer-tar-gz
|
cli-installer-tar-gz
|
||||||
PUBLISH_AWS_S3 += \
|
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
|
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
|
||||||
PUBLISH_BINTRAY_DEBIAN += \
|
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 += \
|
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
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_PLATFORM),win32)
|
ifeq ($(TARGET_PLATFORM),win32)
|
||||||
|
@ -96,12 +96,6 @@ make electron-installer-zip
|
|||||||
make electron-installer-nsis
|
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
|
Publishing to Bintray
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
|
@ -49,7 +49,13 @@ const DEFAULT_STATE = Immutable.fromJS({
|
|||||||
errorReporting: true,
|
errorReporting: true,
|
||||||
unmountOnSuccess: true,
|
unmountOnSuccess: true,
|
||||||
validateWriteOnSuccess: 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),
|
includeUnstableUpdateChannel: !release.isStableRelease(packageJSON.version),
|
||||||
lastSleptUpdateNotifier: null,
|
lastSleptUpdateNotifier: null,
|
||||||
lastSleptUpdateNotifierVersion: null
|
lastSleptUpdateNotifierVersion: null
|
||||||
@ -539,7 +545,7 @@ module.exports = _.merge(redux.createStore(
|
|||||||
// is not very elegant, nor performant, so we decide
|
// is not very elegant, nor performant, so we decide
|
||||||
// to intentionally ignore this little flaw since
|
// to intentionally ignore this little flaw since
|
||||||
// adding extra properties makes no damage at all.
|
// 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": {
|
"portable": {
|
||||||
"artifactName": "${productName}-${version}-win32-${env.TARGET_ARCH}-portable.${ext}",
|
"artifactName": "${productName}-${version}-win32-${env.TARGET_ARCH}-portable.${ext}",
|
||||||
"requestExecutionLevel": "user"
|
"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": {
|
"scripts": {
|
||||||
|
@ -71,6 +71,12 @@ elif [ "$ARGV_TYPE" == "debian" ]; then
|
|||||||
RESULT=armhf
|
RESULT=armhf
|
||||||
fi
|
fi
|
||||||
elif [ "$ARGV_TYPE" == "redhat" ]; then
|
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
|
if [ "$ARGV_ARCHITECTURE" == "x86" ]; then
|
||||||
RESULT=i386
|
RESULT=i386
|
||||||
elif [ "$ARGV_ARCHITECTURE" == "x64" ]; then
|
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 \
|
curl \
|
||||||
fuse \
|
fuse \
|
||||||
git \
|
git \
|
||||||
|
graphicsmagick \
|
||||||
|
icnsutils \
|
||||||
jq \
|
jq \
|
||||||
libasound2 \
|
libasound2 \
|
||||||
libgconf-2-4 \
|
libgconf-2-4 \
|
||||||
@ -28,8 +30,10 @@ RUN apt-get update \
|
|||||||
python-dev \
|
python-dev \
|
||||||
python-software-properties \
|
python-software-properties \
|
||||||
unzip \
|
unzip \
|
||||||
|
xorriso \
|
||||||
xvfb \
|
xvfb \
|
||||||
zip \
|
xz-utils \
|
||||||
|
zip \
|
||||||
rpm
|
rpm
|
||||||
|
|
||||||
# Install a C++11 compiler
|
# 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 unsafe-perm=true
|
||||||
|
|
||||||
RUN npm config set spin=false
|
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
|
# Python
|
||||||
COPY requirements.txt requirements.txt
|
COPY requirements.txt requirements.txt
|
||||||
|
@ -13,6 +13,8 @@ RUN apt-get update \
|
|||||||
curl \
|
curl \
|
||||||
fuse \
|
fuse \
|
||||||
git \
|
git \
|
||||||
|
graphicsmagick \
|
||||||
|
icnsutils \
|
||||||
jq \
|
jq \
|
||||||
libasound2 \
|
libasound2 \
|
||||||
libgconf-2-4 \
|
libgconf-2-4 \
|
||||||
@ -27,8 +29,10 @@ RUN apt-get update \
|
|||||||
python-dev \
|
python-dev \
|
||||||
python-software-properties \
|
python-software-properties \
|
||||||
unzip \
|
unzip \
|
||||||
|
xorriso \
|
||||||
xvfb \
|
xvfb \
|
||||||
zip \
|
xz-utils \
|
||||||
|
zip \
|
||||||
rpm
|
rpm
|
||||||
|
|
||||||
# Install a C++11 compiler
|
# 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 unsafe-perm=true
|
||||||
|
|
||||||
RUN npm config set spin=false
|
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
|
# Python
|
||||||
COPY requirements.txt requirements.txt
|
COPY requirements.txt requirements.txt
|
||||||
|
@ -16,6 +16,8 @@ RUN apt-get update \
|
|||||||
curl \
|
curl \
|
||||||
fuse \
|
fuse \
|
||||||
git \
|
git \
|
||||||
|
graphicsmagick \
|
||||||
|
icnsutils \
|
||||||
jq \
|
jq \
|
||||||
libasound2 \
|
libasound2 \
|
||||||
libgconf-2-4 \
|
libgconf-2-4 \
|
||||||
@ -30,9 +32,10 @@ RUN apt-get update \
|
|||||||
python-dev \
|
python-dev \
|
||||||
python-software-properties \
|
python-software-properties \
|
||||||
unzip \
|
unzip \
|
||||||
|
xorriso \
|
||||||
xvfb \
|
xvfb \
|
||||||
|
xz-utils \
|
||||||
zip \
|
zip \
|
||||||
rpm
|
rpm
|
||||||
|
|
||||||
# Install a C++11 compiler
|
# 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 unsafe-perm=true
|
||||||
|
|
||||||
RUN npm config set spin=false
|
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
|
# Python
|
||||||
COPY requirements.txt requirements.txt
|
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