mirror of
https://codeberg.org/lauralani/ipam.git
synced 2024-11-23 20:20:39 +01:00
add some class foo
This commit is contained in:
parent
0fbae78fcf
commit
8475bad2d7
5 changed files with 69 additions and 30 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -22,3 +22,6 @@ go.work
|
|||
|
||||
# build output
|
||||
output/
|
||||
|
||||
# vs code stuff
|
||||
.vscode/
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
/*
|
||||
Copyright © 2023 Laura Kalb <dev@lauka.net>
|
||||
*/
|
||||
|
||||
package classes
|
||||
|
||||
type Subnet struct {
|
||||
subnet string
|
||||
name string
|
||||
}
|
39
cmd/root.go
39
cmd/root.go
|
@ -55,27 +55,36 @@ func initConfig() {
|
|||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
var ipamdir string = homedir + "/.ipam/"
|
||||
// Search config in home directory with name ".cobra" (without extension).
|
||||
viper.AddConfigPath(homedir + "/.ipam/")
|
||||
viper.SetConfigName("ipam.yml")
|
||||
viper.AddConfigPath(ipamdir)
|
||||
viper.SetConfigName("ipam")
|
||||
viper.SetConfigType("yaml")
|
||||
|
||||
viper.SetDefault("EnablePowerDNS", false)
|
||||
viper.SetDefault("DataPath", homedir+"/.ipam/data/")
|
||||
|
||||
println(homedir + "/.ipam/")
|
||||
viper.SetDefault("DataPath", ipamdir+"/data/")
|
||||
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
//if errfolder := os.MkdirAll(homedir+"/.ipam/", 0664); err != nil {
|
||||
// println("[ERROR] Can't create config dir!", errfolder)
|
||||
// os.Exit(1)
|
||||
//}
|
||||
_, patherr := os.Stat(ipamdir)
|
||||
if patherr != nil {
|
||||
mkerr := os.MkdirAll(ipamdir, 0755)
|
||||
if mkerr != nil {
|
||||
println("[ERROR] Can't create ipam config directory!", mkerr)
|
||||
}
|
||||
}
|
||||
|
||||
//if errconfig := viper.WriteConfig(); err != nil {
|
||||
// println("[ERROR] Can't create config file!", errconfig)
|
||||
// os.Exit(1)
|
||||
//}
|
||||
|
||||
println("[ERROR] Can't read config file!", err)
|
||||
// I have no idea what's happening here...
|
||||
if _, ok := err.(viper.ConfigFileNotFoundError); ok {
|
||||
writeerr := viper.SafeWriteConfig()
|
||||
if writeerr != nil {
|
||||
println("[ERROR] Can't write config file!", writeerr)
|
||||
}
|
||||
} else {
|
||||
println("[ERROR] Can't read config file!", err)
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Println(viper.AllKeys())
|
||||
|
||||
}
|
||||
|
|
42
cmd/storage.go
Normal file
42
cmd/storage.go
Normal file
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
Copyright © 2023 Laura Kalb <dev@lauka.net>
|
||||
*/
|
||||
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"net"
|
||||
)
|
||||
|
||||
type Subnet struct {
|
||||
Subnet net.IPNet
|
||||
Name string
|
||||
Vlan string
|
||||
Addresses []Address
|
||||
}
|
||||
|
||||
type Address struct {
|
||||
IP string
|
||||
FQDN string
|
||||
}
|
||||
|
||||
// GetSubnet tries to load the most fitting IP subnet file on disk.
|
||||
// It takes an IP object and tries to get the best subnet (meaning
|
||||
// the subnet with the smallest subnet size).
|
||||
//
|
||||
// Returns the best subnet as Subnet object and true if a suitable
|
||||
// subnet was found, otherwise an empty Subnet object and false.
|
||||
func GetSubnet(ip net.IP) (Subnet, bool) {
|
||||
|
||||
return Subnet{}, false
|
||||
}
|
||||
|
||||
// WriteSubnet takes a given Subnet object and tries to write it to
|
||||
// file.
|
||||
//
|
||||
// Returns nil on success or the error that happened.
|
||||
func WriteSubnet(subnet Subnet) error {
|
||||
//if subnet.Subnet
|
||||
|
||||
return nil
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
/*
|
||||
Copyright © 2023 Laura Kalb <dev@lauka.net>
|
||||
*/
|
||||
|
||||
package storage
|
Loading…
Reference in a new issue