prototype

This commit is contained in:
2025-08-20 21:15:35 +03:00
parent 598d516b57
commit 58414744ce
11 changed files with 390 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
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 в директорию")
}
}