From 5ee9998626bc6e2d54a59cbd985c4da9c1184c8c Mon Sep 17 00:00:00 2001 From: Arun Babu Neelicattu Date: Sun, 14 Jun 2026 00:52:30 +0200 Subject: [PATCH] feat(site): use remote name as default Flatpak repo title --- README.md | 2 +- pkg/site/site.go | 4 +-- pkg/site/site_test.go | 58 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 220c2e5..5338af2 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ The CLI parses settings from a configuration file, looking for `aetherpak.yaml` * **`remote_name`** (string): The repository name configured in user Flatpak clients (defaults to `-`). Historically used for OCI registry pushes; now acts as a fallback for `oci_repository` (deprecated for registry pushes). * **`output_dir`** (string): Base directory for all output assets (state, records, site, ccache, repo) unless overridden. * **`no_sign`** (boolean): Set to `true` to disable GPG signing of repositories and OCI images entirely (defaults to `false`). -* **`repo_title`** (string): Customized title shown on the landing page and `.flatpakrepo` metadata (defaults to `"Flatpak Repository"`). +* **`repo_title`** (string): Customized title shown on the landing page and `.flatpakrepo` metadata (defaults to the value of `remote_name`, which defaults to `"aetherpak"`). * **`repo_homepage`** (string): URL link for repository homepage metadata. * **`runtime_repo`** (string): Fallback `.flatpakrepo` URL used to resolve dependencies (defaults to Flathub). * **`channel_mappings`** (map[string]string): Key-value pairs mapping Git references (supporting glob wildcards like `staging/*`) to target flatpak branches. diff --git a/pkg/site/site.go b/pkg/site/site.go index dfc5f9f..df0e0d4 100644 --- a/pkg/site/site.go +++ b/pkg/site/site.go @@ -529,7 +529,7 @@ func writeFlatpakRepoFile(siteDir string, registry string, gpgKeyBase64 string, title := opts.RepoTitle if title == "" { - title = "Flatpak Repository" + title = remote } homepage := opts.RepoHomepage @@ -968,7 +968,7 @@ func buildTemplateData(opts SiteOptions, index FlatpakIndex, fingerprint string, data.RemoteName = "aetherpak" } if data.RepoTitle == "" { - data.RepoTitle = "Flatpak Repository" + data.RepoTitle = data.RemoteName } if data.AccentColor == "" { data.AccentColor = "#8b5cf6" diff --git a/pkg/site/site_test.go b/pkg/site/site_test.go index 536e463..108a3f6 100644 --- a/pkg/site/site_test.go +++ b/pkg/site/site_test.go @@ -1231,6 +1231,64 @@ func TestWriteFlatpakRepoCustomSigDir(t *testing.T) { } } +func TestWriteFlatpakRepoDefaultTitle(t *testing.T) { + tests := []struct { + name string + remoteName string + repoTitle string + expected string + }{ + { + name: "defaults to remote name when title is empty", + remoteName: "my-custom-remote", + repoTitle: "", + expected: "Title=my-custom-remote", + }, + { + name: "defaults to aetherpak when both are empty", + remoteName: "", + repoTitle: "", + expected: "Title=aetherpak", + }, + { + name: "uses configured repo title override", + remoteName: "my-custom-remote", + repoTitle: "Override Title", + expected: "Title=Override Title", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tempDir := t.TempDir() + opts := SiteOptions{ + RemoteName: tt.remoteName, + RepoTitle: tt.repoTitle, + } + + err := writeFlatpakRepoFile(tempDir, "ghcr.io", "", opts) + if err != nil { + t.Fatalf("writeFlatpakRepoFile failed: %v", err) + } + + remote := tt.remoteName + if remote == "" { + remote = "aetherpak" + } + repoFilePath := filepath.Join(tempDir, remote+".flatpakrepo") + repoBytes, err := os.ReadFile(repoFilePath) + if err != nil { + t.Fatalf("failed to read generated flatpakrepo file: %v", err) + } + repoContent := string(repoBytes) + + if !strings.Contains(repoContent, tt.expected) { + t.Errorf("expected flatpakrepo to contain %q, got:\n%s", tt.expected, repoContent) + } + }) + } +} + func TestBuildSiteDryRun(t *testing.T) { tempDir := t.TempDir() recordsDir := filepath.Join(tempDir, "records")