summaryrefslogtreecommitdiff
path: root/pkg/pickle/helpers.go
diff options
context:
space:
mode:
authorSam Whited <sam@samwhited.com>2022-03-11 13:50:17 -0500
committerSam Whited <sam@samwhited.com>2022-03-15 09:32:05 -0400
commita0f8afb97d2218b4f987779c5b2bb247ead1c66e (patch)
treefcadcf56c6de186d30c9a9a09f5c045c9f2ccde7 /pkg/pickle/helpers.go
parent2d95d4d069124df4a4e2473fc23ad3feed19905d (diff)
Remove dependency on statik and use go:embed
This removes a dependency by using the built-in go:embed functionality introduce in Go 1.16 instead of statik for embedding files. This means that Go 1.16+ would now be required to build the VPN. Signed-off-by: Sam Whited <sam@samwhited.com>
Diffstat (limited to 'pkg/pickle/helpers.go')
-rw-r--r--pkg/pickle/helpers.go28
1 files changed, 9 insertions, 19 deletions
diff --git a/pkg/pickle/helpers.go b/pkg/pickle/helpers.go
index 69d0e87..c0bd024 100644
--- a/pkg/pickle/helpers.go
+++ b/pkg/pickle/helpers.go
@@ -1,5 +1,3 @@
-//go:generate statik -src=../../helpers -include=*
-
// Copyright (C) 2020 LEAP
//
// This program is free software: you can redistribute it and/or modify
@@ -18,17 +16,19 @@
package pickle
import (
+ "embed"
"fmt"
- "io/ioutil"
+ "io"
"log"
"os"
"os/exec"
+ "path"
"runtime"
-
- _ "0xacab.org/leap/bitmask-vpn/pkg/pickle/statik"
- "github.com/rakyll/statik/fs"
)
+//go:embed helpers
+var helpers embed.FS
+
const (
bitmaskRoot = "/usr/sbin/bitmask-root"
// TODO parametrize this with config.appName
@@ -96,27 +96,17 @@ func dumpHelper(fname, dest string, isExec bool) {
fmt.Println("Only linux supported for now")
return
}
- stFS, err := fs.New()
- if err != nil {
- log.Fatal(err)
- }
-
- r, err := stFS.Open("/" + fname)
- if err != nil {
- log.Fatal(err)
- }
- defer r.Close()
- c, err := ioutil.ReadAll(r)
+ fd, err := helpers.Open(path.Join("helpers", fname))
if err != nil {
log.Fatal(err)
}
- tmpfile, err := ioutil.TempFile("/dev/shm", "*")
+ tmpfile, err := os.CreateTemp("/dev/shm", "*")
check(err)
defer os.Remove(tmpfile.Name())
- _, err = tmpfile.Write(c)
+ _, err = io.Copy(tmpfile, fd)
check(err)
copyAsRoot(tmpfile.Name(), dest, isExec)
}