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 {
if os.Getuid() != 0 {
golog.Fatalf("You need to run this command as root.")
}
name := strings.TrimSpace(c.String("name"))
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")
sitesAvail := conf.App.MustString("nginx.sitesAvailable")
sitesEnabled := conf.App.MustString("nginx.sitesEnabled")
@ -29,7 +33,7 @@ func CmdNew(c *cli.Context) error {
projectFolder := filepath.Join(projectRoot, name)
if customProjectPath == "" {
if customProjectPath != "" {
projectFolder = customProjectPath
}

View File

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