package build import ( "encoding/json" "log" "os" "path" "git.gulenok.ru/greenhaze/old_carga/internal/global" "git.gulenok.ru/greenhaze/old_carga/internal/target" "git.gulenok.ru/greenhaze/old_carga/internal/target/darwin" ) func BuildProject() { project_config := parseProjectFile() bt := getBuildTarget(project_config) bt.CreateBuildProject(project_config) log.Println("СТАРАЯ КАРГА ЗАВЕРШИЛА СБОРКУ УСПЕШНО!") } func parseProjectFile() global.ProjectFile { working_dir, err := os.Getwd() if err != nil { log.Fatalln("карга не смогла получить текущую рабочую директорию") } file, err := os.ReadFile(path.Join(working_dir, "карга.json")) if err != nil { log.Fatalln("карга не смогла прочитать карга.json") } var pf global.ProjectFile json.Unmarshal(file, &pf) return pf } func getBuildTarget(bc global.ProjectFile) target.BaseTarget { switch bc.Target { case "darwin": return darwin.DarwinBuildTarget{} case "linux": //пока тут нет linux specific приколов так шо пока пусть будет дарвин, лол return darwin.DarwinBuildTarget{} } log.Fatalf("Неизвестная цель сборки %s", bc.Target) return nil }