Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
tui gome bowser go
0

Configure Feed

Select the types of activity you want to include in your feed.

move go files from `src/` to `cmd/switchyard/`

Aly Raffauf (Jul 5, 2026, 11:04 AM EDT) 61b5b623 4b098e31

+15 -15
+1 -1
.gitignore
··· 14 14 webextension/build/ 15 15 coverage.out 16 16 repo/ 17 - switchyard 17 + /switchyard 18 18 switchyard-webextension-chrome.zip 19 19 firefox-extension/ 20 20 result
+1 -1
flatpak/io.github.alyraffauf.Switchyard.Devel.yml
··· 53 53 - | 54 54 . /usr/lib/sdk/golang/enable.sh 55 55 mkdir -p "$GOCACHE" 56 - go build -mod=mod -modcacherw -trimpath -o switchyard-bin ./src 56 + go build -mod=mod -modcacherw -trimpath -o switchyard-bin ./cmd/switchyard 57 57 - install -Dm755 switchyard-bin /app/bin/switchyard-bin 58 58 - install -Dm755 flatpak/switchyard-wrapper.sh /app/bin/switchyard 59 59 # Install desktop file and update app-id to .Devel
+12 -12
justfile
··· 18 18 19 19 # Build the application 20 20 build: 21 - go build -mod=mod -trimpath -ldflags="-s -w" -o switchyard ./src 21 + go build -mod=mod -trimpath -ldflags="-s -w" -o switchyard ./cmd/switchyard 22 22 23 23 # Install to system 24 24 install: build ··· 40 40 41 41 # Update the bundled AdGuard tracking-parameter filter list 42 42 update-adguard: 43 - curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardFilters/master/TrackParamFilter/sections/general_url.txt -o src/embedded/adguard_filter.txt 44 - @echo "Updated src/embedded/adguard_filter.txt" 43 + curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardFilters/master/TrackParamFilter/sections/general_url.txt -o cmd/switchyard/embedded/adguard_filter.txt 44 + @echo "Updated cmd/switchyard/embedded/adguard_filter.txt" 45 45 46 46 # Set as default browser 47 47 set-default: ··· 57 57 # Run unit tests 58 58 test: 59 59 @echo "Running unit tests..." 60 - go test -v ./src/config_test.go ./src/config_compat_test.go ./src/url_test.go ./src/pattern_test.go ./src/validation_test.go ./src/redirection_test.go ./src/app.go ./src/config.go ./src/url.go ./src/pattern.go ./src/validation.go ./src/redirection.go 60 + go test -v ./cmd/switchyard/config_test.go ./cmd/switchyard/config_compat_test.go ./cmd/switchyard/url_test.go ./cmd/switchyard/pattern_test.go ./cmd/switchyard/validation_test.go ./cmd/switchyard/redirection_test.go ./cmd/switchyard/app.go ./cmd/switchyard/config.go ./cmd/switchyard/url.go ./cmd/switchyard/pattern.go ./cmd/switchyard/validation.go ./cmd/switchyard/redirection.go 61 61 62 62 # Run tests with coverage report 63 63 test-coverage: 64 64 @echo "Running tests with coverage..." 65 - go test -coverprofile=coverage.out ./src/config_test.go ./src/config_compat_test.go ./src/url_test.go ./src/pattern_test.go ./src/validation_test.go ./src/redirection_test.go ./src/app.go ./src/config.go ./src/url.go ./src/pattern.go ./src/validation.go ./src/redirection.go 65 + go test -coverprofile=coverage.out ./cmd/switchyard/config_test.go ./cmd/switchyard/config_compat_test.go ./cmd/switchyard/url_test.go ./cmd/switchyard/pattern_test.go ./cmd/switchyard/validation_test.go ./cmd/switchyard/redirection_test.go ./cmd/switchyard/app.go ./cmd/switchyard/config.go ./cmd/switchyard/url.go ./cmd/switchyard/pattern.go ./cmd/switchyard/validation.go ./cmd/switchyard/redirection.go 66 66 go tool cover -func=coverage.out 67 67 @echo "" 68 68 @echo "To view HTML coverage report, run: go tool cover -html=coverage.out" ··· 136 136 exit 1 137 137 fi 138 138 139 - # Allow src/app.go, metainfo, extension manifests, and package.json to be dirty; nothing else. 140 - dirty="$(git status --porcelain -- ':!src/app.go' ":!${metainfo}" ":!${manifest}" ":!${firefox_manifest}" ":!${pkgjson}")" 139 + # Allow cmd/switchyard/app.go, metainfo, extension manifests, and package.json to be dirty; nothing else. 140 + dirty="$(git status --porcelain -- ':!cmd/switchyard/app.go' ":!${metainfo}" ":!${manifest}" ":!${firefox_manifest}" ":!${pkgjson}")" 141 141 if [ -n "$dirty" ]; then 142 - echo "error: working tree has changes outside src/app.go, ${metainfo}, ${manifest}, ${firefox_manifest}:" >&2 142 + echo "error: working tree has changes outside cmd/switchyard/app.go, ${metainfo}, ${manifest}, ${firefox_manifest}:" >&2 143 143 echo "$dirty" >&2 144 144 exit 1 145 145 fi ··· 155 155 exit 1 156 156 fi 157 157 158 - sed -i -E "s/^(\s*Version\s*=\s*)\"[^\"]+\"/\1\"${version}\"/" src/app.go 159 - if ! grep -qE "Version\s*=\s*\"${version}\"" src/app.go; then 160 - echo "error: failed to update Version in src/app.go" >&2 158 + sed -i -E "s/^(\s*Version\s*=\s*)\"[^\"]+\"/\1\"${version}\"/" cmd/switchyard/app.go 159 + if ! grep -qE "Version\s*=\s*\"${version}\"" cmd/switchyard/app.go; then 160 + echo "error: failed to update Version in cmd/switchyard/app.go" >&2 161 161 exit 1 162 162 fi 163 163 ··· 179 179 exit 1 180 180 fi 181 181 182 - git add src/app.go "${metainfo}" "${manifest}" "${firefox_manifest}" "${pkgjson}" 182 + git add cmd/switchyard/app.go "${metainfo}" "${manifest}" "${firefox_manifest}" "${pkgjson}" 183 183 git commit -m "update for ${tag}" 184 184 git tag -a "${tag}" -m "${tag}" 185 185 git push origin master
+1 -1
package.nix
··· 13 13 version = "dev"; 14 14 src = ./.; 15 15 vendorHash = "sha256-bfetT+kVrnfFH/ykBNUb0dVwBvQr0VndiZBZNWUj0vw="; 16 - subPackages = ["src"]; 16 + subPackages = ["cmd/switchyard"]; 17 17 18 18 ldflags = [ 19 19 "-s"
src/app.go cmd/switchyard/app.go
src/browser.go cmd/switchyard/browser.go
src/config.go cmd/switchyard/config.go
src/config_compat_test.go cmd/switchyard/config_compat_test.go
src/config_test.go cmd/switchyard/config_test.go
src/desktop_actions.go cmd/switchyard/desktop_actions.go
src/dialog_about.go cmd/switchyard/dialog_about.go
src/dialog_default_browser.go cmd/switchyard/dialog_default_browser.go
src/dialog_helpers.go cmd/switchyard/dialog_helpers.go
src/dialog_hidden_browsers.go cmd/switchyard/dialog_hidden_browsers.go
src/dialog_redirection.go cmd/switchyard/dialog_redirection.go
src/dialog_rule_add.go cmd/switchyard/dialog_rule_add.go
src/dialog_rule_common.go cmd/switchyard/dialog_rule_common.go
src/dialog_rule_edit.go cmd/switchyard/dialog_rule_edit.go
src/embedded/adguard_filter.txt cmd/switchyard/embedded/adguard_filter.txt
src/launch.go cmd/switchyard/launch.go
src/launcher_actions.go cmd/switchyard/launcher_actions.go
src/main.go cmd/switchyard/main.go
src/native_host.go cmd/switchyard/native_host.go
src/pattern.go cmd/switchyard/pattern.go
src/pattern_test.go cmd/switchyard/pattern_test.go
src/redirection.go cmd/switchyard/redirection.go
src/redirection_test.go cmd/switchyard/redirection_test.go
src/sanitizer.go cmd/switchyard/sanitizer.go
src/sanitizer_test.go cmd/switchyard/sanitizer_test.go
src/settings_advanced.go cmd/switchyard/settings_advanced.go
src/settings_appearance.go cmd/switchyard/settings_appearance.go
src/settings_behavior.go cmd/switchyard/settings_behavior.go
src/settings_redirections.go cmd/switchyard/settings_redirections.go
src/settings_rules.go cmd/switchyard/settings_rules.go
src/ui_helpers.go cmd/switchyard/ui_helpers.go
src/url.go cmd/switchyard/url.go
src/url_test.go cmd/switchyard/url_test.go
src/validation.go cmd/switchyard/validation.go
src/validation_test.go cmd/switchyard/validation_test.go
src/window_launcher.go cmd/switchyard/window_launcher.go
src/window_settings.go cmd/switchyard/window_settings.go