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,45 @@
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
}