prototype
This commit is contained in:
51
internal/create/create_project.go
Normal file
51
internal/create/create_project.go
Normal 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 в директорию")
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user