Skip to content

Commit

Permalink
Merge branch 'main' into browser-err
Browse files Browse the repository at this point in the history
  • Loading branch information
quexten authored Mar 17, 2024
2 parents 17f62c1 + 84fe149 commit 3323326
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 54 deletions.
11 changes: 11 additions & 0 deletions browserbiometrics/chrome-com.8bit.bitwarden.json
Original file line number Diff line number Diff line change
@@ -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/"
]
}
9 changes: 9 additions & 0 deletions browserbiometrics/goldwarden-proxy.sh
Original file line number Diff line number Diff line change
@@ -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
54 changes: 44 additions & 10 deletions browserbiometrics/main.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package browserbiometrics

import (
_ "embed"
"fmt"
"os"
"path/filepath"
Expand All @@ -10,6 +11,15 @@ import (
"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{
"~/.config/google-chrome/",
"~/.config/google-chrome-beta/",
Expand Down Expand Up @@ -116,13 +126,25 @@ func detectAndInstallBrowsers(startPath string) error {
fmt.Printf("Found mozilla-like browser: %s\n", path)

fmt.Println("Removing old manifest and proxy script")
os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
os.Remove(path + "/com.8bit.bitwarden.json")
os.Chown(path+"/goldwarden-proxy.sh", 7, 7)
os.Remove(path + "/goldwarden-proxy.sh")
err = os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
if err != nil {
return err
}
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")
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)
if err != nil {
return err
Expand All @@ -137,13 +159,25 @@ func detectAndInstallBrowsers(startPath string) error {
fmt.Printf("Found chrome-like browser: %s\n", path)

fmt.Println("Removing old manifest and proxy script")
os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
os.Remove(path + "/com.8bit.bitwarden.json")
os.Chown(path+"/goldwarden-proxy.sh", 7, 7)
os.Remove(path + "/goldwarden-proxy.sh")
err = os.Chown(path+"/com.8bit.bitwarden.json", 7, 7)
if err != nil {
return err
}
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")
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)
if err != nil {
return err
Expand Down
34 changes: 0 additions & 34 deletions browserbiometrics/manifests.go

This file was deleted.

9 changes: 9 additions & 0 deletions browserbiometrics/mozilla-com.8bit.bitwarden.json
Original file line number Diff line number Diff line change
@@ -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 changes: 9 additions & 0 deletions cmd/goldwarden.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Unit]
Description="Goldwarden daemon"
After=graphical-session.target

[Service]
ExecStart=@BINARY_PATH@ daemonize

[Install]
WantedBy=graphical-session.target
14 changes: 4 additions & 10 deletions cmd/setup_linux.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package cmd

import (
_ "embed"
"fmt"
"log"
"os"
Expand Down Expand Up @@ -81,15 +82,8 @@ var polkitCmd = &cobra.Command{
},
}

const SYSTEMD_SERVICE = `[Unit]
Description="Goldwarden daemon"
After=graphical-session.target
[Service]
ExecStart=BINARY_PATH daemonize
[Install]
WantedBy=graphical-session.target`
//go:embed goldwarden.service
var systemdService string

func setupSystemd() {
if isRoot() {
Expand All @@ -107,7 +101,7 @@ func setupSystemd() {
panic(err)
}

_, err = file.WriteString(strings.ReplaceAll(SYSTEMD_SERVICE, "BINARY_PATH", path))
_, err = file.WriteString(strings.ReplaceAll(systemdService, "@BINARY_PATH@", path))
if err != nil {
panic(err)
}
Expand Down

0 comments on commit 3323326

Please sign in to comment.