feat: add config and structured logging
This commit is contained in:
parent
902a8bb7d1
commit
fe83dc1f33
9 changed files with 275 additions and 31 deletions
|
|
@ -4,6 +4,9 @@ import (
|
|||
"embed"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"jws/internal/config"
|
||||
"jws/internal/logger"
|
||||
"log/slog"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
|
|
@ -20,16 +23,22 @@ type Project struct {
|
|||
FolderName string `json:"folderName"`
|
||||
}
|
||||
|
||||
var (
|
||||
log *slog.Logger
|
||||
projects []Project
|
||||
conf config.Config
|
||||
)
|
||||
|
||||
func Init(projs []Project, config *config.Config) {
|
||||
log = logger.GetChildLogger("project")
|
||||
projects = projs
|
||||
conf = *config
|
||||
}
|
||||
|
||||
func DeployProject(index int, projects []Project, projectsFS embed.FS, mainWindow fyne.Window) {
|
||||
project := projects[index]
|
||||
|
||||
homeDir, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
dialog.ShowError(fmt.Errorf("error getting home directory: %v", err), mainWindow)
|
||||
return
|
||||
}
|
||||
|
||||
projectPath := filepath.Join(homeDir, "Projects", project.FolderName)
|
||||
projectPath := filepath.Join(conf.DeploymentPath, project.FolderName)
|
||||
|
||||
confirmDialog := dialog.NewConfirm(
|
||||
"deploying project",
|
||||
|
|
@ -47,14 +56,18 @@ func DeployProject(index int, projects []Project, projectsFS embed.FS, mainWindo
|
|||
progress.SetValue(0.1)
|
||||
err := os.MkdirAll(projectPath, 0755)
|
||||
if err != nil {
|
||||
dialog.ShowError(fmt.Errorf("error creating directory: %v", err), mainWindow)
|
||||
errMsg := fmt.Errorf("error creating directory: %v", err)
|
||||
dialog.ShowError(errMsg, mainWindow)
|
||||
log.Error(errMsg.Error())
|
||||
return
|
||||
}
|
||||
|
||||
progress.SetValue(0.3)
|
||||
err = CopyEmbeddedProject(projectsFS, project.FolderName, projectPath)
|
||||
if err != nil {
|
||||
dialog.ShowError(fmt.Errorf("error copying project files: %v", err), mainWindow)
|
||||
errMsg := fmt.Errorf("error copying project files: %v", err)
|
||||
dialog.ShowError(errMsg, mainWindow)
|
||||
log.Error(errMsg.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -74,7 +87,9 @@ func DeployProject(index int, projects []Project, projectsFS embed.FS, mainWindo
|
|||
progress.SetValue(0.9)
|
||||
err = openCmd.Run()
|
||||
if err != nil {
|
||||
dialog.ShowError(fmt.Errorf("error opening VS Code: %v", err), mainWindow)
|
||||
errMsg := fmt.Errorf("error opening VS Code: %v", err)
|
||||
dialog.ShowError(errMsg, mainWindow)
|
||||
log.Error(errMsg.Error())
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue