Skip to content

Commit

Permalink
cmd/vinegar: introduce merlin
Browse files Browse the repository at this point in the history
  • Loading branch information
apprehensions committed Dec 9, 2023
1 parent 4cca314 commit 6c3a2dc
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 2 deletions.
60 changes: 60 additions & 0 deletions cmd/vinegar/merlin.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package main

import (
"bytes"
"encoding/json"
"fmt"
"log"
"net/http"
"strings"

"github.com/vinegarhq/vinegar/sysinfo"
)

type Data struct {
Project string `json:"project"`
Distro string `json:"distro"`
Kernel string `json:"kernel"`
Flatpak bool `json:"flatpak"`
AVX bool `json:"avx"`
CPU string `json:"cpu"`
GPUs string `json:"gpu"` // gpu driver list seperated by commas
}

func SubmitMerlin() error {
var cs []string
for _, c := range sysinfo.Cards {
cs = append(cs, c.Driver)
}

d := Data{
Project: "Vinegar " + Version,
Distro: sysinfo.Distro,
Kernel: sysinfo.Kernel,
Flatpak: sysinfo.InFlatpak,
AVX: sysinfo.CPU.AVX,
CPU: sysinfo.CPU.Name,
GPUs: strings.Join(cs, ","),
}

sd, err := json.Marshal(d)
if err != nil {
return err
}

log.Println(string(sd))

resp, err := http.Post("https://merlin.vinegarhq.org:7000", "application/json", bytes.NewBuffer(sd))
if err != nil {
return fmt.Errorf("merlin: %w", err)
}
defer resp.Body.Close()

if resp.Status != "202" {
return fmt.Errorf("merlin: bad status: %s", resp.Status)
}

log.Println("Successfully sent hardware information to merlin")

return nil
}
8 changes: 6 additions & 2 deletions cmd/vinegar/vinegar.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func usage() {
fmt.Fprintln(os.Stderr, "usage: vinegar [-config filepath] player|studio [args...]")
fmt.Fprintln(os.Stderr, " vinegar [-config filepath] exec prog args...")
fmt.Fprintln(os.Stderr, " vinegar [-config filepath] kill|winetricks|sysinfo")
fmt.Fprintln(os.Stderr, " vinegar delete|edit|uninstall|version")
fmt.Fprintln(os.Stderr, " vinegar delete|edit|submit|uninstall|version")
os.Exit(1)
}

Expand All @@ -44,14 +44,18 @@ func main() {

switch cmd {
// These commands don't require a configuration
case "delete", "edit", "uninstall", "version":
case "delete", "edit", "submit", "uninstall", "version":
switch cmd {
case "delete":
Delete()
case "edit":
if err := editor.Edit(*configPath); err != nil {
log.Fatal(err)
}
case "submit":
if err := SubmitMerlin(); err != nil {
log.Fatal(err)
}
case "uninstall":
Uninstall()
case "version":
Expand Down

0 comments on commit 6c3a2dc

Please sign in to comment.