mirror of
https://github.com/gravitl/netmaker.git
synced 2025-02-27 09:36:08 +08:00
Merge branch 'feature-messageQueue' of github.com:gravitl/netmaker into feature-messageQueue
This commit is contained in:
commit
9f00ec8817
4 changed files with 15 additions and 37 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -17,4 +17,3 @@ config/dnsconfig/
|
|||
data/
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
|
|
|
@ -215,8 +215,3 @@ func Daemon() error {
|
|||
err := functions.Daemon()
|
||||
return err
|
||||
}
|
||||
|
||||
func Daemon() error {
|
||||
err := functions.Daemon()
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -4,30 +4,31 @@ import (
|
|||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/gravitl/netmaker/netclient/ncutils"
|
||||
)
|
||||
|
||||
const MAC_SERVICE_NAME = "com.gravitl.netclient"
|
||||
|
||||
// SetupMacDaemon - Creates a daemon service from the netclient under LaunchAgents for MacOS
|
||||
func SetupMacDaemon(interval string) error {
|
||||
|
||||
if !ncutils.FileExists("/etc/netclient/netclient") {
|
||||
binarypath, err := os.Executable()
|
||||
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ncutils.PrintLog("installing binary from "+binarypath, 0)
|
||||
err = ncutils.Copy(binarypath, "/etc/netclient/netclient")
|
||||
binarypath := dir + "/netclient"
|
||||
|
||||
if !ncutils.FileExists("/sbin/netclient") {
|
||||
err = ncutils.Copy(binarypath, "/sbin/netclient")
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
_, err := os.Stat("~/Library/LaunchAgents")
|
||||
if os.IsNotExist(err) {
|
||||
_, errN := os.Stat("~/Library/LaunchAgents")
|
||||
if os.IsNotExist(errN) {
|
||||
os.Mkdir("~/Library/LaunchAgents", 0755)
|
||||
}
|
||||
err = CreateMacService(MAC_SERVICE_NAME, interval)
|
||||
|
@ -38,7 +39,6 @@ func SetupMacDaemon(interval string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// CleanupMac - Removes the netclient checkin daemon from LaunchDaemons
|
||||
func CleanupMac() {
|
||||
_, err := ncutils.RunCmd("launchctl unload /Library/LaunchDaemons/"+MAC_SERVICE_NAME+".plist", true)
|
||||
if ncutils.FileExists("/Library/LaunchDaemons/" + MAC_SERVICE_NAME + ".plist") {
|
||||
|
@ -49,9 +49,9 @@ func CleanupMac() {
|
|||
}
|
||||
|
||||
os.RemoveAll(ncutils.GetNetclientPath())
|
||||
os.Remove("/sbin/netclient")
|
||||
}
|
||||
|
||||
// CreateMacService - Creates the mac service file for LaunchDaemons
|
||||
func CreateMacService(servicename string, interval string) error {
|
||||
_, err := os.Stat("/Library/LaunchDaemons")
|
||||
if os.IsNotExist(err) {
|
||||
|
@ -69,7 +69,6 @@ func CreateMacService(servicename string, interval string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// MacDaemonString - the file contents for the mac netclient daemon service (launchdaemon)
|
||||
func MacDaemonString(interval string) string {
|
||||
return fmt.Sprintf(`<?xml version='1.0' encoding='UTF-8'?>
|
||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\" >
|
||||
|
@ -78,10 +77,8 @@ func MacDaemonString(interval string) string {
|
|||
<key>Label</key><string>com.gravitl.netclient</string>
|
||||
<key>ProgramArguments</key>
|
||||
<array>
|
||||
<string>/etc/netclient/netclient</string>
|
||||
<string>checkin</string>
|
||||
<string>-n</string>
|
||||
<string>all</string>
|
||||
<string>/sbin/netclient</string>
|
||||
<string>daemon</string>
|
||||
</array>
|
||||
<key>StandardOutPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
||||
<key>StandardErrorPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
||||
|
@ -98,7 +95,6 @@ func MacDaemonString(interval string) string {
|
|||
`, interval)
|
||||
}
|
||||
|
||||
// MacTemplateData - struct to represent the mac service
|
||||
type MacTemplateData struct {
|
||||
Label string
|
||||
Interval string
|
||||
|
|
|
@ -69,22 +69,10 @@ func ApplyWGQuickConf(confPath string) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// ApplyMacOSConf - applies system commands similar to wg-quick using golang for MacOS
|
||||
func ApplyMacOSConf(node models.Node, ifacename string, confPath string) error {
|
||||
var err error
|
||||
_ = WgQuickDownMac(node, ifacename)
|
||||
err = WgQuickUpMac(node, ifacename, confPath)
|
||||
return err
|
||||
}
|
||||
|
||||
// SyncWGQuickConf - formats config file and runs sync command
|
||||
func SyncWGQuickConf(iface string, confPath string) error {
|
||||
var tmpConf = confPath + ".sync.tmp"
|
||||
var confCmd = "wg-quick strip "
|
||||
if ncutils.IsMac() {
|
||||
confCmd = "grep -v -e Address -e MTU -e PostUp -e PostDown "
|
||||
}
|
||||
confRaw, err := ncutils.RunCmd(confCmd+confPath, false)
|
||||
confRaw, err := ncutils.RunCmd("wg-quick strip "+confPath, false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue