aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2024-12-29 17:10:41 +0900
committerOphestra <cat@gensokyo.uk>2024-12-29 17:10:41 +0900
commit891b3cbde75c071b7339716d6fae727e26f19c0a (patch)
treeb1a5eb1555acc286ae2b667bf7f687c5429aa1b5
parentc795293f3690ca6d91e898b72edd0a20b9708450 (diff)
cmd/fpkg: compare all three store paths
Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--cmd/fpkg/bundle.go4
-rw-r--r--cmd/fpkg/install.go4
2 files changed, 5 insertions, 3 deletions
diff --git a/cmd/fpkg/bundle.go b/cmd/fpkg/bundle.go
index eb3150bb..aa1eecdb 100644
--- a/cmd/fpkg/bundle.go
+++ b/cmd/fpkg/bundle.go
@@ -40,11 +40,11 @@ type bundleInfo struct {
// allow gpu access within sandbox
GPU bool `json:"gpu"`
- // inner nix store path to activate-and-exec script
+ // store path to activate-and-exec script
Launcher string `json:"launcher"`
// store path to /run/current-system
CurrentSystem string `json:"current_system"`
- // home-manager activation package
+ // store path to home-manager activation package
ActivationPackage string `json:"activation_package"`
}
diff --git a/cmd/fpkg/install.go b/cmd/fpkg/install.go
index 793b953f..86c6ab25 100644
--- a/cmd/fpkg/install.go
+++ b/cmd/fpkg/install.go
@@ -97,7 +97,9 @@ func actionInstall(args []string) {
if app != bundle {
// do not try to re-install
- if app.Launcher == bundle.Launcher {
+ if app.CurrentSystem == bundle.CurrentSystem &&
+ app.Launcher == bundle.Launcher &&
+ app.ActivationPackage == bundle.ActivationPackage {
cleanup()
fmsg.Printf("package %q is identical to local application %q", pkgPath, app.ID)
fmsg.Exit(0)