mirror of
https://github.com/bettercap/bettercap.git
synced 2024-11-03 04:00:07 -08:00
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
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())
|
|
}
|