diff --git a/README.md b/README.md index 718c8a0..311ba13 100644 --- a/README.md +++ b/README.md @@ -93,6 +93,7 @@ As fallback, the last part of the path is used, e.g. `theuser1` for `Internet/gi - Vivaldi - Iridium - Slimjet +- Librewolf ### Windows diff --git a/internal/jsonapi/manifest/manifest.go b/internal/jsonapi/manifest/manifest.go index 6d989a9..91d835d 100644 --- a/internal/jsonapi/manifest/manifest.go +++ b/internal/jsonapi/manifest/manifest.go @@ -25,6 +25,8 @@ func renaderManifestContent(browser, wrapperPath string) ([]byte, error) { switch browser { case "firefox": return newFirefoxManifest(wrapperPath).Format() + case "librewolf": + return newFirefoxManifest(wrapperPath).Format() case "chrome": fallthrough case "brave": diff --git a/internal/jsonapi/manifest/manifest_path.go b/internal/jsonapi/manifest/manifest_path.go index 94a9154..2b8b1b9 100644 --- a/internal/jsonapi/manifest/manifest_path.go +++ b/internal/jsonapi/manifest/manifest_path.go @@ -17,7 +17,7 @@ func (m manifestPath) Global(browser, libpath string) (string, error) { return "", err } - if browser == "firefox" && libpath != "" { + if (browser == "firefox" || browser == "librewolf") && libpath != "" { return filepath.Join(libpath, path), nil } diff --git a/internal/jsonapi/manifest/manifest_path_darwin.go b/internal/jsonapi/manifest/manifest_path_darwin.go index f2abda3..b2d4a30 100644 --- a/internal/jsonapi/manifest/manifest_path_darwin.go +++ b/internal/jsonapi/manifest/manifest_path_darwin.go @@ -2,16 +2,18 @@ package manifest var manifestPaths = &manifestPath{ local: map[string]string{ - "firefox": "~/Library/Application Support/Mozilla/NativeMessagingHosts", - "chrome": "~/Library/Application Support/Google/Chrome/NativeMessagingHosts", - "chromium": "~/Library/Application Support/Chromium/NativeMessagingHosts", - "brave": "~/Library/Application Support/Brave/NativeMessagingHosts", - "vivaldi": "~/Library/Application Support/Vivaldi/NativeMessagingHosts", - "iridium": "~/Library/Application Support/Iridium/NativeMessagingHosts", - "slimjet": "~/Library/Application Support/Slimjet/NativeMessagingHosts", + "firefox": "~/Library/Application Support/Mozilla/NativeMessagingHosts", + "librewolf": "~/Library/Application Support/Librewolf/NativeMessagingHosts", + "chrome": "~/Library/Application Support/Google/Chrome/NativeMessagingHosts", + "chromium": "~/Library/Application Support/Chromium/NativeMessagingHosts", + "brave": "~/Library/Application Support/Brave/NativeMessagingHosts", + "vivaldi": "~/Library/Application Support/Vivaldi/NativeMessagingHosts", + "iridium": "~/Library/Application Support/Iridium/NativeMessagingHosts", + "slimjet": "~/Library/Application Support/Slimjet/NativeMessagingHosts", }, global: map[string]string{ "firefox": "/Library/Application Support/Mozilla/NativeMessagingHosts", + "librewolf": "/Library/Application Support/Librewolf/NativeMessagingHosts", "chrome": "/Library/Google/Chrome/NativeMessagingHosts", "chromium": "/Library/Application Support/Chromium/NativeMessagingHosts", "brave": "/Library/Application Support/Brave/NativeMessagingHosts", diff --git a/internal/jsonapi/manifest/manifest_path_linux.go b/internal/jsonapi/manifest/manifest_path_linux.go index e96dcfe..ff57ed5 100644 --- a/internal/jsonapi/manifest/manifest_path_linux.go +++ b/internal/jsonapi/manifest/manifest_path_linux.go @@ -2,21 +2,23 @@ package manifest var manifestPaths = &manifestPath{ local: map[string]string{ - "firefox": "~/.mozilla/native-messaging-hosts", - "chrome": "~/.config/google-chrome/NativeMessagingHosts", - "chromium": "~/.config/chromium/NativeMessagingHosts", - "brave": "~/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts", - "vivaldi": "~/.config/vivaldi/NativeMessagingHosts", - "iridium": "~/.config/iridium/NativeMessagingHosts", - "slimjet": "~/.config/slimjet/NativeMessagingHosts", + "firefox": "~/.mozilla/native-messaging-hosts", + "librewolf": "~/.librewolf/native-messaging-hosts", + "chrome": "~/.config/google-chrome/NativeMessagingHosts", + "chromium": "~/.config/chromium/NativeMessagingHosts", + "brave": "~/.config/BraveSoftware/Brave-Browser/NativeMessagingHosts", + "vivaldi": "~/.config/vivaldi/NativeMessagingHosts", + "iridium": "~/.config/iridium/NativeMessagingHosts", + "slimjet": "~/.config/slimjet/NativeMessagingHosts", }, global: map[string]string{ - "firefox": "mozilla/native-messaging-hosts", // will be prefixed with the appropriate lib path - "chrome": "/etc/opt/chrome/native-messaging-hosts", - "chromium": "/etc/chromium/native-messaging-hosts", - "brave": "/etc/opt/chrome/native-messaging-hosts", - "vivaldi": "/etc/opt/vivaldi/native-messaging-hosts", - "iridium": "/etc/iridium-browser/native-messaging-hosts", - "slimjet": "/etc/opt/slimjet/native-messaging-hosts", + "firefox": "mozilla/native-messaging-hosts", // will be prefixed with the appropriate lib path + "librewolf": "librewolf/native-messaging-hosts", // will be prefixed with the appropriate lib path + "chrome": "/etc/opt/chrome/native-messaging-hosts", + "chromium": "/etc/chromium/native-messaging-hosts", + "brave": "/etc/opt/chrome/native-messaging-hosts", + "vivaldi": "/etc/opt/vivaldi/native-messaging-hosts", + "iridium": "/etc/iridium-browser/native-messaging-hosts", + "slimjet": "/etc/opt/slimjet/native-messaging-hosts", }, } diff --git a/internal/jsonapi/manifest/setup_test.go b/internal/jsonapi/manifest/setup_test.go index 4625ca9..d187ea4 100644 --- a/internal/jsonapi/manifest/setup_test.go +++ b/internal/jsonapi/manifest/setup_test.go @@ -52,6 +52,6 @@ func TestValidBrowsers(t *testing.T) { if runtime.GOOS == "windows" { assert.Equal(t, []string{"chrome", "chromium", "firefox"}, ValidBrowsers()) } else { - assert.Equal(t, []string{"brave", "chrome", "chromium", "firefox", "iridium", "slimjet", "vivaldi"}, ValidBrowsers()) + assert.Equal(t, []string{"brave", "chrome", "chromium", "firefox", "iridium", "librewolf", "slimjet", "vivaldi"}, ValidBrowsers()) } } diff --git a/setup.go b/setup.go index 5d1ed45..4684226 100644 --- a/setup.go +++ b/setup.go @@ -38,7 +38,7 @@ func (s *jsonapiCLI) getGlobalInstall(ctx context.Context, c *cli.Context) (bool } func (s *jsonapiCLI) getLibPath(ctx context.Context, c *cli.Context, browser string, global bool) (string, error) { - if !c.IsSet("libpath") && runtime.GOOS == "linux" && browser == "firefox" && global { + if !c.IsSet("libpath") && runtime.GOOS == "linux" && (browser == "firefox" || browser == "librewolf") && global { return termio.AskForString(ctx, color.BlueString("What is your lib path?"), "/usr/lib") }