12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package caplets
- import (
- "os"
- "path/filepath"
- "runtime"
- "github.com/evilsocket/islazy/str"
- "github.com/mitchellh/go-homedir"
- )
- const (
- EnvVarName = "CAPSPATH"
- Suffix = ".cap"
- InstallArchive = "https://github.com/bettercap/caplets/archive/master.zip"
- )
- func getDefaultInstallBase() string {
- if runtime.GOOS == "windows" {
- return filepath.Join(os.Getenv("ALLUSERSPROFILE"), "bettercap")
- }
- return "/usr/local/share/bettercap/"
- }
- func getUserHomeDir() string {
- usr, _ := homedir.Dir()
- return usr
- }
- var (
- InstallBase = ""
- InstallPathArchive = ""
- InstallPath = ""
- ArchivePath = ""
- LoadPaths = []string(nil)
- )
- func Setup(base string) error {
- InstallBase = base
- InstallPathArchive = filepath.Join(InstallBase, "caplets-master")
- InstallPath = filepath.Join(InstallBase, "caplets")
- ArchivePath = filepath.Join(os.TempDir(), "caplets.zip")
- LoadPaths = []string{
- "./",
- "./caplets/",
- InstallPath,
- filepath.Join(getUserHomeDir(), "caplets"),
- }
- for _, path := range str.SplitBy(str.Trim(os.Getenv(EnvVarName)), string(os.PathListSeparator)) {
- if path = str.Trim(path); len(path) > 0 {
- LoadPaths = append(LoadPaths, path)
- }
- }
- for i, path := range LoadPaths {
- LoadPaths[i], _ = filepath.Abs(path)
- }
- return nil
- }
- func init() {
- // init with defaults
- Setup(getDefaultInstallBase())
- }
|