#!/bin/bash packageName='openflexure-ev' scriptPath=$(dirname "$0") packagePath="$(dirname "$scriptPath")" packageJson="$packagePath/package.json" installerPath="$packagePath/openflexure-ev-win.exe" installerHash=`sha256sum ${installerPath} | awk '{ print $1 }'` echo "$installerHash" outpath="$packagePath/release-builds/choco" toolspath="$outpath/tools" mkdir -p "$toolspath" echo "$scriptPath" echo "$packageJson" echo "$outpath" # Get package version from package.json packageVersion=$(grep version < "$packageJson" | head -1 \ | awk -F: '{ print $2 }' \ | sed 's/[",]//g' \ | tr -d ':space:') echo "Package version: $packageVersion" # Convert into a nupkg-safe version string majVer="$(echo "$packageVersion" | cut -d'-' -f1)" minVer="$(echo "$packageVersion" | cut -d'-' -f2)" if [ "$majVer" = "$minVer" ]; then version="$majVer" else minVer="${minVer//.}" version="$majVer-$minVer" fi echo "Nupkg version: $version" # Build installer URL pipelineURL="$CI_PROJECT_URL/-/jobs/artifacts/$CI_COMMIT_REF_NAME/raw" instURL="$pipelineURL/openflexure-ev-win.exe?job=package" nuspecURL="$CI_JOB_URL/artifacts/browse" echo "$instURL" # Build nuspec cat > "$outpath/openflexure-ev.nuspec" <<- EOL $packageName OpenFlexure eV $version OpenFlexure Joel Collins OpenFlexure Microscope client An electron-based user client for the OpenFlexure Microscope Server https://www.openflexure.org/ https://www.openflexure.org/projects/microscope/ https://gitlab.com/openflexure/openflexure-microscope-jsclient/issues https://gitlab.com/openflexure/openflexure-microscope-jsclient/ $nuspecURL openflexure microscope ev https://gitlab.com/openflexure/openflexure-microscope-jsclient/raw/master/LICENSE false https://glcdn.githack.com/openflexure/openflexure-microscope-jsclient/raw/v1.1.0/app/icons/png/512x512.png EOL # Build installer PS1 content cat > "$toolspath/chocolateyInstall.ps1" <<- EOL \$ErrorActionPreference = "Stop"; \$toolsDir = "\$(Split-Path -parent $MyInvocation.MyCommand.Definition)" \$url = "$instURL" \$packageArgs = @{ packageName = "openflexure-ev" unzipLocation = \$toolsDir fileType = "exe" url = \$url url64bit = \$url softwareName = "OpenFlexure eV" checksum = "${installerHash}" checksumType = "sha256" silentArgs = "/S" } Install-ChocolateyPackage @packageArgs EOL