40 lines
827 B
Go
40 lines
827 B
Go
|
package actions
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"gitea.benny.dog/torjus/ezshare/certs"
|
||
|
"gitea.benny.dog/torjus/ezshare/config"
|
||
|
"github.com/urfave/cli/v2"
|
||
|
)
|
||
|
|
||
|
func ActionGencerts(c *cli.Context) error {
|
||
|
outDir := "."
|
||
|
if c.IsSet("out-dir") {
|
||
|
outDir = c.String("out-dir")
|
||
|
}
|
||
|
if !c.IsSet("hostname") {
|
||
|
return fmt.Errorf("--hostname required")
|
||
|
}
|
||
|
hostname := c.String("hostname")
|
||
|
return certs.GenAllCerts(outDir, hostname)
|
||
|
}
|
||
|
|
||
|
func getConfig(c *cli.Context) (*config.Config, error) {
|
||
|
if c.IsSet("config") {
|
||
|
cfgPath := c.String("config")
|
||
|
return config.FromFile(cfgPath)
|
||
|
}
|
||
|
cfg, err := config.FromDefaultLocations()
|
||
|
if err == nil {
|
||
|
verbosePrint(c, fmt.Sprintf("Config loaded from %s", cfg.Location()))
|
||
|
}
|
||
|
return cfg, err
|
||
|
}
|
||
|
|
||
|
func verbosePrint(c *cli.Context, message string) {
|
||
|
if c.Bool("verbose") {
|
||
|
fmt.Println(message)
|
||
|
}
|
||
|
}
|