Merge branch 'main' into browser-err

This commit is contained in:
Bernd Schoolmann 2024-03-17 14:46:28 +01:00 committed by GitHub
commit 3323326920
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 86 additions and 54 deletions

View File

@ -0,0 +1,11 @@
{
"name": "com.8bit.bitwarden",
"description": "Bitwarden desktop <-> browser bridge",
"path": "@PATH@",
"type": "stdio",
"allowed_origins": [
"chrome-extension://nngceckbapebfimnlniiiahkandclblb/",
"chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh/",
"chrome-extension://ccnckbpmaceehanjmeomladnmlffdjgn/"
]
}

View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
# Check if the "com.quexten.Goldwarden" Flatpak is installed
if flatpak list | grep -q "com.quexten.Goldwarden"; then
flatpak run --command=goldwarden com.quexten.Goldwarden "$@"
else
# If not installed, attempt to run the local version
goldwarden "$@"
fi

View File

@ -1,6 +1,7 @@
package browserbiometrics package browserbiometrics
import ( import (
_ "embed"
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
@ -10,6 +11,15 @@ import (
"github.com/quexten/goldwarden/browserbiometrics/logging" "github.com/quexten/goldwarden/browserbiometrics/logging"
) )
//go:embed mozilla-com.8bit.bitwarden.json
var templateMozilla string
//go:embed chrome-com.8bit.bitwarden.json
var templateChrome string
//go:embed goldwarden-proxy.sh
var proxyScript string
var chromiumPaths = []string{ var chromiumPaths = []string{
"~/.config/google-chrome/", "~/.config/google-chrome/",
"~/.config/google-chrome-beta/", "~/.config/google-chrome-beta/",
@ -116,13 +126,25 @@ func detectAndInstallBrowsers(startPath string) error {
fmt.Printf("Found mozilla-like browser: %s\n", path) fmt.Printf("Found mozilla-like browser: %s\n", path)
fmt.Println("Removing old manifest and proxy script") fmt.Println("Removing old manifest and proxy script")
os.Chown(path+"/com.8bit.bitwarden.json", 7, 7) err = os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
os.Remove(path + "/com.8bit.bitwarden.json") if err != nil {
os.Chown(path+"/goldwarden-proxy.sh", 7, 7) return err
os.Remove(path + "/goldwarden-proxy.sh") }
err = os.Remove(path + "/com.8bit.bitwarden.json")
if err != nil {
return err
}
err = os.Chown(path+"/goldwarden-proxy.sh", 7, 7)
if err != nil {
return err
}
err = os.Remove(path + "/goldwarden-proxy.sh")
if err != nil {
return err
}
fmt.Println("Writing new manifest") fmt.Println("Writing new manifest")
manifest := strings.Replace(templateMozilla, "PATH", path+"/goldwarden-proxy.sh", 1) manifest := strings.Replace(templateMozilla, "@PATH@", path+"/goldwarden-proxy.sh", 1)
err = os.WriteFile(path+"/com.8bit.bitwarden.json", []byte(manifest), 0444) err = os.WriteFile(path+"/com.8bit.bitwarden.json", []byte(manifest), 0444)
if err != nil { if err != nil {
return err return err
@ -137,13 +159,25 @@ func detectAndInstallBrowsers(startPath string) error {
fmt.Printf("Found chrome-like browser: %s\n", path) fmt.Printf("Found chrome-like browser: %s\n", path)
fmt.Println("Removing old manifest and proxy script") fmt.Println("Removing old manifest and proxy script")
os.Chown(path+"/com.8bit.bitwarden.json", 7, 7) err = os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
os.Remove(path + "/com.8bit.bitwarden.json") if err != nil {
os.Chown(path+"/goldwarden-proxy.sh", 7, 7) return err
os.Remove(path + "/goldwarden-proxy.sh") }
err = os.Remove(path + "/com.8bit.bitwarden.json")
if err != nil {
return err
}
err = os.Chown(path+"/goldwarden-proxy.sh", 7, 7)
if err != nil {
return err
}
err = os.Remove(path + "/goldwarden-proxy.sh")
if err != nil {
return err
}
fmt.Println("Writing new manifest") fmt.Println("Writing new manifest")
manifest := strings.Replace(templateChrome, "PATH", path+"/goldwarden-proxy.sh", 1) manifest := strings.Replace(templateChrome, "@PATH@", path+"/goldwarden-proxy.sh", 1)
err = os.WriteFile(path+"/com.8bit.bitwarden.json", []byte(manifest), 0444) err = os.WriteFile(path+"/com.8bit.bitwarden.json", []byte(manifest), 0444)
if err != nil { if err != nil {
return err return err

View File

@ -1,34 +0,0 @@
package browserbiometrics
const templateMozilla = `{
"name": "com.8bit.bitwarden",
"description": "Bitwarden desktop <-> browser bridge",
"path": "PATH",
"type": "stdio",
"allowed_extensions": [
"{446900e4-71c2-419f-a6a7-df9c091e268b}"
]
}`
const templateChrome = `{
"name": "com.8bit.bitwarden",
"description": "Bitwarden desktop <-> browser bridge",
"path": "PATH",
"type": "stdio",
"allowed_origins": [
"chrome-extension://nngceckbapebfimnlniiiahkandclblb/",
"chrome-extension://jbkfoedolllekgbhcbcoahefnbanhhlh/",
"chrome-extension://ccnckbpmaceehanjmeomladnmlffdjgn/"
]
}`
const proxyScript = `#!/usr/bin/env bash
# Check if the "com.quexten.Goldwarden" Flatpak is installed
if flatpak list | grep -q "com.quexten.Goldwarden"; then
flatpak run --command=goldwarden com.quexten.Goldwarden "$@"
else
# If not installed, attempt to run the local version
goldwarden "$@"
fi
`

View File

@ -0,0 +1,9 @@
{
"name": "com.8bit.bitwarden",
"description": "Bitwarden desktop <-> browser bridge",
"path": "@PATH@",
"type": "stdio",
"allowed_extensions": [
"{446900e4-71c2-419f-a6a7-df9c091e268b}"
]
}

9
cmd/goldwarden.service Normal file
View File

@ -0,0 +1,9 @@
[Unit]
Description="Goldwarden daemon"
After=graphical-session.target
[Service]
ExecStart=@BINARY_PATH@ daemonize
[Install]
WantedBy=graphical-session.target

View File

@ -3,6 +3,7 @@
package cmd package cmd
import ( import (
_ "embed"
"fmt" "fmt"
"log" "log"
"os" "os"
@ -81,15 +82,8 @@ var polkitCmd = &cobra.Command{
}, },
} }
const SYSTEMD_SERVICE = `[Unit] //go:embed goldwarden.service
Description="Goldwarden daemon" var systemdService string
After=graphical-session.target
[Service]
ExecStart=BINARY_PATH daemonize
[Install]
WantedBy=graphical-session.target`
func setupSystemd() { func setupSystemd() {
if isRoot() { if isRoot() {
@ -107,7 +101,7 @@ func setupSystemd() {
panic(err) panic(err)
} }
_, err = file.WriteString(strings.ReplaceAll(SYSTEMD_SERVICE, "BINARY_PATH", path)) _, err = file.WriteString(strings.ReplaceAll(systemdService, "@BINARY_PATH@", path))
if err != nil { if err != nil {
panic(err) panic(err)
} }