diff options
| -rw-r--r-- | .github/workflows/release.yml | 14 | ||||
| -rw-r--r-- | Makefile | 13 | ||||
| -rw-r--r-- | build.ps1 | 7 | ||||
| -rw-r--r-- | install.sh | 17 |
4 files changed, 35 insertions, 16 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7ba6be0..31a4251 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,10 +194,20 @@ jobs: WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }} run: | $version = "${{ github.ref_name }}".TrimStart('v') - $url = "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/DPIBreak-$version-x86_64-pc-windows-msvc.zip" + $url = "https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/dpibreak-$version-x86_64-pc-windows-msvc.zip" + $out = Join-Path $env:RUNNER_TEMP "winget" ./wingetcreate.exe update Dilluti0n.DPIBreak ` --version $version ` --urls $url ` - --submit ` + --out $out + + # Update RelativeFilePath on Dilluti0n.DPIBreak.installer.yaml + $installer = Get-ChildItem -Path $out -Recurse -Filter '*.installer.yaml' ` + | Select-Object -First 1 + (Get-Content $installer.FullName) ` + -replace '(RelativeFilePath:).*', "`$1 dpibreak-$version\dpibreak.exe" ` + | Set-Content $installer.FullName + + ./wingetcreate.exe submit $installer.Directory.FullName ` --token $env:WINGET_TOKEN @@ -63,11 +63,12 @@ build: cargo build --release --locked --target "$(BUILD_TARGET)" DIST_ELEMS = $(PROG) $(MAN) README.md CHANGELOG COPYING Makefile -DISTDIR = dist -DISTNAME = $(PROJECT)-$(VERSION)-$(BUILD_TARGET) -TARBALL = $(DISTDIR)/$(DISTNAME).tar.gz -SHA256 = $(TARBALL).sha256 -BUILDINFO = $(DISTDIR)/$(DISTNAME).buildinfo +DISTDIR = dist +DISTNAME = $(PROG)-$(VERSION) +ARCHIVE = $(PROG)-$(VERSION)-$(BUILD_TARGET) +TARBALL = $(DISTDIR)/$(ARCHIVE).tar.gz +SHA256 = $(TARBALL).sha256 +BUILDINFO = $(DISTDIR)/$(ARCHIVE).buildinfo tarball: $(SHA256) $(BUILDINFO) @@ -86,7 +87,7 @@ $(TARBALL): build $(DIST_ELEMS) | $(DISTDIR)/$(DISTNAME) -czf "$@" "$(DISTNAME)" $(SHA256): $(TARBALL) - { cd $(DISTDIR) && sha256sum "$(DISTNAME).tar.gz"; } > "$@" + { cd $(DISTDIR) && sha256sum "$(ARCHIVE).tar.gz"; } > "$@" $(BUILDINFO): $(TARGET) | $(DISTDIR) { \ @@ -55,11 +55,12 @@ try { $SourceDateEpoch = git log -1 --format=%ct $DistDir = Join-Path $ScriptRoot "dist" -$DistName = "$($ProjectName)-$($ProjectVersion)-$($BuildTarget)" +$DistName = "$($ProgramName)-$($ProjectVersion)" +$Archive = "$($ProgramName)-$($ProjectVersion)-$($BuildTarget)" $DistPath = Join-Path $DistDir $DistName -$ZipBallPath = Join-Path $DistDir "$($DistName).zip" +$ZipBallPath = Join-Path $DistDir "$($Archive).zip" $Sha256Path = "$($ZipBallPath).sha256" -$BuildInfoPath = Join-Path $DistDir "$($DistName).buildinfo" +$BuildInfoPath = Join-Path $DistDir "$($Archive).buildinfo" # List of files to include in the distribution archive. # Note: Renaming for COPYING and CHANGELOG is handled during the copy process. @@ -1,15 +1,16 @@ # SPDX-FileCopyrightText: 2026 Dilluti0n <[email protected]> # SPDX-License-Identifier: GPL-3.0-or-later -# + # DPIBreak install script # CHANGELOG: +# v1.4 - Support for new tarball/exdir naming (since DPIBreak v0.6.2) # v1.3 - Fix to prevent tarball fetch and install logs from appearing during uninstallation # v1.2 - Remove -v on tar, fix/add logs and add SVERSION variable # v1.1 - Remove make dependency set -eu -SVERSION='v1.3' +SVERSION='v1.4' PROJECT='DPIBreak' REPO='dilluti0n/dpibreak' LINUX='Linux' @@ -90,8 +91,8 @@ do_install() { [ "$ARCH" = "$AMD64" ] || die "$ARCH: not supported. Only $AMD64 is supported." TAG=$(get_tag) - TARBALL="$PROJECT-${TAG#v}-$ARCH-unknown-linux-musl.tar.gz" - EXDIR="${TARBALL%.tar.gz}" + TARBALL="$PROG-${TAG#v}-$ARCH-unknown-linux-musl.tar.gz" + EXDIR="$PROG-${TAG#v}" URI="https://github.com/$REPO/releases/download/$TAG/$TARBALL" WORKDIR=$(mktemp -d) trap 'rm -rf "$WORKDIR"' EXIT @@ -100,7 +101,13 @@ do_install() { curl -fsSL --retry 3 --connect-timeout 5 -o "$TARBALL" "$URI" \ || die Failed to download $URI tar -xzf "$TARBALL" - cd "$EXDIR" || die Failed to enter directory: $EXDIR + + if ! cd "$EXDIR"; then + echo Tarball might be older than v0.6.2. Falling back to legacy path... >&2 + EXDIR_LEGACY="$PROJECT-${TAG#v}-$ARCH-unknown-linux-musl" + cd "$EXDIR_LEGACY" || die Failed to enter directory: both $EXDIR \ + and legacy $EXDIR_LEGACY + fi do_sudo install -Dm755 "$PROG" "$PREFIX/bin/$PROG" do_sudo install -Dm644 "$MAN" "$MANPREFIX/man1/$MAN" |
