4 Commits

Author SHA1 Message Date
pk
48490673ea Better way to find home dir even if sudo is used. 2024-09-13 17:09:21 +02:00
pk
913fbdb690 Fix again... 2024-09-12 00:23:50 +02:00
pk
0505fa0a1a Fixes 2024-09-12 00:22:42 +02:00
pk
7bc4dc84df Remove duplicate alias. 2024-09-12 00:21:14 +02:00
2 changed files with 33 additions and 10 deletions

View File

@ -19,9 +19,13 @@ import (
) )
func CmdNew(c *cli.Context) error { func CmdNew(c *cli.Context) error {
if os.Getuid() != 0 {
golog.Fatalf("You need to run this command as root.")
}
name := strings.TrimSpace(c.String("name")) name := strings.TrimSpace(c.String("name"))
domain := strings.TrimSpace(c.String("domain")) domain := strings.TrimSpace(c.String("domain"))
customProjectPath := strings.TrimSpace(c.String("project-path")) customProjectPath := strings.TrimSpace(c.String("custom-path"))
projectRoot := conf.App.MustString("projects.root") projectRoot := conf.App.MustString("projects.root")
sitesAvail := conf.App.MustString("nginx.sitesAvailable") sitesAvail := conf.App.MustString("nginx.sitesAvailable")
sitesEnabled := conf.App.MustString("nginx.sitesEnabled") sitesEnabled := conf.App.MustString("nginx.sitesEnabled")
@ -29,7 +33,7 @@ func CmdNew(c *cli.Context) error {
projectFolder := filepath.Join(projectRoot, name) projectFolder := filepath.Join(projectRoot, name)
if customProjectPath == "" { if customProjectPath != "" {
projectFolder = customProjectPath projectFolder = customProjectPath
} }

View File

@ -2,6 +2,7 @@ package hoster_cli
import ( import (
"os" "os"
"os/user"
"path/filepath" "path/filepath"
"gitea.codeblob.work/pk/hoster/cmd/hoster_cli/commands" "gitea.codeblob.work/pk/hoster/cmd/hoster_cli/commands"
@ -12,17 +13,12 @@ import (
) )
func Execute() { func Execute() {
homeDir, err := os.UserHomeDir() conf.LoadConfig(filepath.Join(findHomeDir(), ".hoster.yml"))
if err != nil {
golog.Fatalf("Error getting home directory: %v", err)
}
conf.LoadConfig(filepath.Join(homeDir, ".hoster.yml"))
app := &cli.App{ app := &cli.App{
Name: "hoster", Name: "hoster",
Usage: "Hoster", Usage: "Hoster",
Version: "1.0.4", Version: "1.0.9",
Commands: []*cli.Command{ Commands: []*cli.Command{
{ {
Name: "new", Name: "new",
@ -36,7 +32,6 @@ func Execute() {
}, },
&cli.StringFlag{ &cli.StringFlag{
Name: "custom-path", Name: "custom-path",
Aliases: []string{"d"},
Usage: "The path of the project. Defaults to ${projects.root}/${name}.", Usage: "The path of the project. Defaults to ${projects.root}/${name}.",
Required: false, Required: false,
}, },
@ -61,3 +56,27 @@ func Execute() {
golog.Fatal(err) golog.Fatal(err)
} }
} }
func findHomeDir() string {
if os.Getuid() == 0 {
username := os.Getenv("SUDO_USER")
if username == "" {
golog.Fatalf("SUDO_USER environment variable is not set.")
}
u, err := user.Lookup(username)
if err != nil {
golog.Fatal(err)
}
return u.HomeDir
}
dir, err := os.UserHomeDir()
if err != nil {
golog.Fatalf("Error getting home directory: %v", err)
}
return dir
}