From 4cae83ced1e5530cf17e928aa1cc19e2b03b9397 Mon Sep 17 00:00:00 2001 From: Jan De Dobbeleer Date: Sat, 6 May 2023 20:23:32 +0200 Subject: [PATCH] feat(windows): add installation method resolves #3799 --- .github/workflows/microsoft_store.yml | 6 +++--- packages/inno/oh-my-posh.iss | 1 + packages/scoop/oh-my-posh.json | 3 ++- .../winget/JanDeDobbeleer.OhMyPosh.installer.yaml | 14 +++++++------- .../JanDeDobbeleer.OhMyPosh.locale.en-US.yaml | 2 +- packages/winget/JanDeDobbeleer.OhMyPosh.yaml | 2 +- src/upgrade/notice.go | 4 ++++ src/upgrade/notice_test.go | 3 +++ 8 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.github/workflows/microsoft_store.yml b/.github/workflows/microsoft_store.yml index 3f6da1ad..19f116bc 100644 --- a/.github/workflows/microsoft_store.yml +++ b/.github/workflows/microsoft_store.yml @@ -32,21 +32,21 @@ jobs: "packageUrl":"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v${{ github.event.inputs.version }}/install-amd64.exe", "languages":["en"], "architectures":["X64"], - "installerParameters":"/VERYSILENT /CURRENTUSER", + "installerParameters":"/VERYSILENT /CURRENTUSER /INSTALLER=winstore", "isSilentInstall":false }, { "packageUrl":"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v${{ github.event.inputs.version }}/install-arm64.exe", "languages":["en"], "architectures":["Arm64"], - "installerParameters":"/VERYSILENT /CURRENTUSER", + "installerParameters":"/VERYSILENT /CURRENTUSER /INSTALLER=winstore", "isSilentInstall":false }, { "packageUrl":"https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v${{ github.event.inputs.version }}/install-386.exe", "languages":["en"], "architectures":["X86"], - "installerParameters":"/VERYSILENT /CURRENTUSER", + "installerParameters":"/VERYSILENT /CURRENTUSER /INSTALLER=winstore", "isSilentInstall":false } ] diff --git a/packages/inno/oh-my-posh.iss b/packages/inno/oh-my-posh.iss index b6ef245a..18abd75f 100644 --- a/packages/inno/oh-my-posh.iss +++ b/packages/inno/oh-my-posh.iss @@ -22,6 +22,7 @@ Source: "bin\themes\*"; DestDir: "{app}\themes" [Registry] Root: "HKA"; Subkey: "{code:GetEnvironmentKey}"; ValueType: expandsz; ValueName: "Path"; ValueData: "{olddata};{app}\bin"; Check: NeedsAddPathHKA(ExpandConstant('{app}\bin')) Root: "HKA"; Subkey: "{code:GetEnvironmentKey}"; ValueType: string; ValueName: "POSH_THEMES_PATH"; ValueData: {app}\themes; Flags: preservestringtype +Root: "HKA"; Subkey: "{code:GetEnvironmentKey}"; ValueType: string; ValueName: "POSH_INSTALLER"; ValueData: {param:installer|manual}; Flags: preservestringtype [Code] function GetEnvironmentKey(Param: string): string; diff --git a/packages/scoop/oh-my-posh.json b/packages/scoop/oh-my-posh.json index 5bedac7c..b76cab50 100644 --- a/packages/scoop/oh-my-posh.json +++ b/packages/scoop/oh-my-posh.json @@ -19,7 +19,8 @@ "installer": { "args": [ "/CURRENTUSER", - "/VERYSILENT" + "/VERYSILENT", + "/INSTALLER=scoop" ] }, "checkver": { diff --git a/packages/winget/JanDeDobbeleer.OhMyPosh.installer.yaml b/packages/winget/JanDeDobbeleer.OhMyPosh.installer.yaml index f3d91a9f..8adcd665 100644 --- a/packages/winget/JanDeDobbeleer.OhMyPosh.installer.yaml +++ b/packages/winget/JanDeDobbeleer.OhMyPosh.installer.yaml @@ -15,36 +15,36 @@ Installers: InstallerSha256: Scope: machine InstallerSwitches: - Custom: /ALLUSERS + Custom: /INSTALLER=winget - Architecture: x64 InstallerUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v/install-amd64.exe InstallerSha256: Scope: user InstallerSwitches: - Custom: /CURRENTUSER + Custom: /INSTALLER=winget - Architecture: x86 InstallerUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v/install-386.exe InstallerSha256: Scope: machine InstallerSwitches: - Custom: /ALLUSERS + Custom: /INSTALLER=winget - Architecture: x86 InstallerUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v/install-386.exe InstallerSha256: Scope: user InstallerSwitches: - Custom: /CURRENTUSER + Custom: /INSTALLER=winget - Architecture: arm64 InstallerUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v/install-arm64.exe InstallerSha256: Scope: machine InstallerSwitches: - Custom: /ALLUSERS + Custom: /INSTALLER=winget - Architecture: arm64 InstallerUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/download/v/install-arm64.exe InstallerSha256: Scope: user InstallerSwitches: - Custom: /CURRENTUSER + Custom: /INSTALLER=winget ManifestType: installer -ManifestVersion: 1.1.0 +ManifestVersion: 1.4.0 diff --git a/packages/winget/JanDeDobbeleer.OhMyPosh.locale.en-US.yaml b/packages/winget/JanDeDobbeleer.OhMyPosh.locale.en-US.yaml index f1c8c31b..611e70ed 100644 --- a/packages/winget/JanDeDobbeleer.OhMyPosh.locale.en-US.yaml +++ b/packages/winget/JanDeDobbeleer.OhMyPosh.locale.en-US.yaml @@ -26,6 +26,6 @@ Tags: - "terminal" - "oh-my-posh" ManifestType: defaultLocale -ManifestVersion: 1.1.0 +ManifestVersion: 1.4.0 ReleaseNotesUrl: https://github.com/JanDeDobbeleer/oh-my-posh/releases/tag/v diff --git a/packages/winget/JanDeDobbeleer.OhMyPosh.yaml b/packages/winget/JanDeDobbeleer.OhMyPosh.yaml index ef7594e2..10b87ff6 100644 --- a/packages/winget/JanDeDobbeleer.OhMyPosh.yaml +++ b/packages/winget/JanDeDobbeleer.OhMyPosh.yaml @@ -2,4 +2,4 @@ PackageIdentifier: JanDeDobbeleer.OhMyPosh PackageVersion: DefaultLocale: en-US ManifestType: version -ManifestVersion: 1.1.0 +ManifestVersion: 1.4.0 diff --git a/src/upgrade/notice.go b/src/upgrade/notice.go index 5a62e2ae..32af9872 100644 --- a/src/upgrade/notice.go +++ b/src/upgrade/notice.go @@ -58,6 +58,10 @@ func getLatestVersion(env platform.Environment) (string, error) { // // The upgrade check is only performed every other week. func Notice(env platform.Environment) (string, bool) { + // never validate when we install using the Windows Store + if env.Getenv("POSH_INSTALLER") == "winstore" { + return "", false + } // do not check when last validation was < 1 week ago if _, OK := env.Cache().Get(CACHEKEY); OK { return "", false diff --git a/src/upgrade/notice_test.go b/src/upgrade/notice_test.go index 410fc139..bc15bea3 100644 --- a/src/upgrade/notice_test.go +++ b/src/upgrade/notice_test.go @@ -20,6 +20,7 @@ func TestCanUpgrade(t *testing.T) { Error error Cache bool GOOS string + Installer string }{ {Case: "Up to date", CurrentVersion: "3.0.0", LatestVersion: "v3.0.0"}, {Case: "Outdated Windows", Expected: true, CurrentVersion: "3.0.0", LatestVersion: "v3.0.1", GOOS: platform.WINDOWS}, @@ -27,6 +28,7 @@ func TestCanUpgrade(t *testing.T) { {Case: "Outdated Darwin", Expected: true, CurrentVersion: "3.0.0", LatestVersion: "v3.0.1", GOOS: platform.DARWIN}, {Case: "Cached", Cache: true}, {Case: "Error", Error: fmt.Errorf("error")}, + {Case: "Windows Store", Installer: "winstore"}, } for _, tc := range cases { @@ -39,6 +41,7 @@ func TestCanUpgrade(t *testing.T) { cache.On("Set", mock2.Anything, mock2.Anything, mock2.Anything) env.On("Cache").Return(cache) env.On("GOOS").Return(tc.GOOS) + env.On("Getenv", "POSH_INSTALLER").Return(tc.Installer) json := fmt.Sprintf(`{"tag_name":"%s"}`, tc.LatestVersion) env.On("HTTPRequest", releaseURL).Return([]byte(json), tc.Error)