46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
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
|
|
}
|