diff options
author | Sam Whited <sam@samwhited.com> | 2022-03-11 13:50:17 -0500 |
---|---|---|
committer | Sam Whited <sam@samwhited.com> | 2022-03-15 09:32:05 -0400 |
commit | a0f8afb97d2218b4f987779c5b2bb247ead1c66e (patch) | |
tree | fcadcf56c6de186d30c9a9a09f5c045c9f2ccde7 /pkg/pickle/helpers.go | |
parent | 2d95d4d069124df4a4e2473fc23ad3feed19905d (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.go | 28 |
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) } |