Skip to content

Commit

Permalink
prepare separate scripts for windows #1
Browse files Browse the repository at this point in the history
  • Loading branch information
reddec committed Jan 21, 2020
1 parent c597202 commit 7c54793
Show file tree
Hide file tree
Showing 8 changed files with 228 additions and 143 deletions.
26 changes: 0 additions & 26 deletions scripts/host.go

This file was deleted.

115 changes: 115 additions & 0 deletions scripts/scripts.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
// +build !windows

package scripts

import (
"bytes"
"text/template"
)

var TincUp = template.Must(template.New("").Parse(`#!/usr/bin/env bash
ip addr add {{.Addr}}/{{.Mask}} dev $INTERFACE
ip link set dev $INTERFACE up
{{.Bin}} monitor &
`))

type TincUpParam struct {
Addr string
Mask int
Bin string
}

func (cfg *TincUpParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincUp.Execute(buf, *cfg)
return buf.Bytes(), err
}

var TincDown = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} kill
ip addr del {{.Addr}}/{{.Mask}} dev $INTERFACE
ip link set dev $INTERFACE down
`))

type TincDownParam struct {
Bin string
Addr string
Mask int
}

func (cfg *TincDownParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincDown.Execute(buf, *cfg)
return buf.Bytes(), err
}

var TincConf = template.Must(template.New("").Parse(`
Name = {{.Name}}
LocalDiscovery = yes
Interface = {{.Net}}
Port = {{.Port}}
{{range .ConnectTo}}
ConnectTo = {{.}}
{{end}}
`))

type TincConfParam struct {
Name string
Net string
Port int
ConnectTo []string
}

func (cfg *TincConfParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincConf.Execute(buf, *cfg)
return buf.Bytes(), err
}

var SubnetUp = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} watch
`))

type SubnetUpParam struct {
Bin string
}

func (cfg *SubnetUpParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := SubnetUp.Execute(buf, *cfg)
return buf.Bytes(), err
}

var SubnetDown = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} forget
`))

type SubnetDownParam struct {
Bin string
}

func (cfg *SubnetDownParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := SubnetDown.Execute(buf, *cfg)
return buf.Bytes(), err
}

var Host = template.Must(template.New("").Parse(`
Subnet = {{.Address}}/32
{{- range .Public}}
Address = {{.}}
{{- end}}
Port = {{.Port}}
`))

type HostParam struct {
Public []string
Address string
Port int
}

func (cfg *HostParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := Host.Execute(buf, *cfg)
return buf.Bytes(), err
}
113 changes: 113 additions & 0 deletions scripts/scripts_windows.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
package scripts

import (
"bytes"
"text/template"
)

var TincUp = template.Must(template.New("").Parse(`#!/usr/bin/env bash
ip addr add {{.Addr}}/{{.Mask}} dev $INTERFACE
ip link set dev $INTERFACE up
{{.Bin}} monitor &
`))

type TincUpParam struct {
Addr string
Mask int
Bin string
}

func (cfg *TincUpParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincUp.Execute(buf, *cfg)
return buf.Bytes(), err
}

var TincDown = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} kill
ip addr del {{.Addr}}/{{.Mask}} dev $INTERFACE
ip link set dev $INTERFACE down
`))

type TincDownParam struct {
Bin string
Addr string
Mask int
}

func (cfg *TincDownParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincDown.Execute(buf, *cfg)
return buf.Bytes(), err
}

var TincConf = template.Must(template.New("").Parse(`
Name = {{.Name}}
LocalDiscovery = yes
Interface = {{.Net}}
Port = {{.Port}}
{{range .ConnectTo}}
ConnectTo = {{.}}
{{end}}
`))

type TincConfParam struct {
Name string
Net string
Port int
ConnectTo []string
}

func (cfg *TincConfParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := TincConf.Execute(buf, *cfg)
return buf.Bytes(), err
}

var SubnetUp = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} watch
`))

type SubnetUpParam struct {
Bin string
}

func (cfg *SubnetUpParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := SubnetUp.Execute(buf, *cfg)
return buf.Bytes(), err
}

var SubnetDown = template.Must(template.New("").Parse(`#!/usr/bin/env bash
{{.Bin}} forget
`))

type SubnetDownParam struct {
Bin string
}

func (cfg *SubnetDownParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := SubnetDown.Execute(buf, *cfg)
return buf.Bytes(), err
}

var Host = template.Must(template.New("").Parse(`
Subnet = {{.Address}}/32
{{- range .Public}}
Address = {{.}}
{{- end}}
Port = {{.Port}}
`))

type HostParam struct {
Public []string
Address string
Port int
}

func (cfg *HostParam) Render() ([]byte, error) {
buf := &bytes.Buffer{}
err := Host.Execute(buf, *cfg)
return buf.Bytes(), err
}
20 changes: 0 additions & 20 deletions scripts/subnetdown.go

This file was deleted.

20 changes: 0 additions & 20 deletions scripts/subnetup.go

This file was deleted.

29 changes: 0 additions & 29 deletions scripts/tincconf.go

This file was deleted.

24 changes: 0 additions & 24 deletions scripts/tincdown.go

This file was deleted.

24 changes: 0 additions & 24 deletions scripts/tincup.go

This file was deleted.

0 comments on commit 7c54793

Please sign in to comment.