package create import ( "encoding/json" "log" "os" "path" "path/filepath" "runtime" "git.gulenok.ru/greenhaze/old_carga/internal/global" "git.gulenok.ru/greenhaze/old_carga/internal/utils" ) func CreateProject() { //выдает абсолютный путь (по крайней мере на маке) типо // /Users/greenhaze/Programming/rela/old_carga current_dir, err := os.Getwd() if err != nil { log.Fatalln("карга не смогла получить текущую директорию") } is_empty, err := utils.IsDirEmpty(current_dir) if err != nil { log.Fatalln("карга не смогла проверить является ли текущая директория пустой") } if !is_empty { log.Fatalln("Текущая директория не пустая. Карга не может создать тут проект") } createProjectFile(current_dir) os.Mkdir(path.Join(current_dir, "исх"), 0755) } func createProjectFile(dir string) { // для примера я добавил базовые таргеты base_file := global.ProjectFile{ ProjectName: filepath.Base(dir), Target: runtime.GOOS, Modules: make([]global.IncludeModule, 0), } file_str, err := json.Marshal(&base_file) if err != nil { log.Fatalln("Карга не смогла собрать базовый файл. Пните пожалуйста разработчика") } carga_project := filepath.Join(dir, "карга.json") err = os.WriteFile(carga_project, file_str, 0644) if err != nil { log.Fatalln("карга не смогла записать карга.json в директорию") } }