This commit is contained in:
2025-04-13 19:54:04 +03:00
parent f26b72b2a2
commit b8cb7af3bb
14 changed files with 213 additions and 261 deletions

View File

@@ -30,6 +30,7 @@ import (
"github.com/leonelquinteros/gotext"
"github.com/urfave/cli/v2"
"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils"
"gitea.plemya-x.ru/Plemya-x/ALR/internal/config"
database "gitea.plemya-x.ru/Plemya-x/ALR/internal/db"
"gitea.plemya-x.ru/Plemya-x/ALR/internal/osutils"
@@ -71,13 +72,11 @@ func BuildCmd() *cli.Command {
Action: func(c *cli.Context) error {
wd, err := os.Getwd()
if err != nil {
slog.Error(gotext.Get("Error getting working directory"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error getting working directory"), err)
}
executable, err := os.Executable()
if err != nil {
slog.Error(gotext.Get("Error getting working directory"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error getting working directory"), err)
}
cmd := exec.Command(executable, "_internal-mount", wd)
@@ -86,8 +85,7 @@ func BuildCmd() *cli.Command {
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
slog.Error(gotext.Get("Error getting working directory"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error getting working directory"), err)
}
wd = stdout.String()
@@ -99,37 +97,29 @@ func BuildCmd() *cli.Command {
cmd.Stdout = &stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if err != nil {
slog.Error(gotext.Get("Error getting working directory"), "err", err)
os.Exit(1)
}
}()
err = utils.DropCapsToAlrUser()
if err != nil {
slog.Error(gotext.Get("Error dropping capabilities"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error dropping capabilities"), err)
}
_, err = os.Stat(wd)
if err != nil {
slog.Error(gotext.Get("Error dropping capabilities"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error dropping capabilities"), err)
}
ctx := c.Context
cfg := config.New()
err = cfg.Load()
if err != nil {
slog.Error(gotext.Get("Error loading config"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error loading config"), err)
}
db := database.New(cfg)
rs := repos.New(cfg, db)
err = db.Init(ctx)
if err != nil {
slog.Error(gotext.Get("Error initialization database"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error initialization database"), err)
}
var script string
@@ -144,8 +134,7 @@ func BuildCmd() *cli.Command {
info, err := distro.ParseOSRelease(ctx)
if err != nil {
slog.Error(gotext.Get("Error parsing os release"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error parsing os release"), err)
}
builder := build.NewMainBuilder(
@@ -176,8 +165,7 @@ func BuildCmd() *cli.Command {
},
)
if err != nil {
slog.Error(gotext.Get("Error building package"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error building package"), err)
}
case c.IsSet("package"):
// TODO: handle multiple packages
@@ -218,8 +206,7 @@ func BuildCmd() *cli.Command {
},
)
if err != nil {
slog.Error(gotext.Get("Error building package"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error building package"), err)
}
default:
slog.Error(gotext.Get("Nothing to build"))
@@ -231,8 +218,7 @@ func BuildCmd() *cli.Command {
name := filepath.Base(pkgPath)
err = osutils.Move(pkgPath, filepath.Join(wd, name))
if err != nil {
slog.Error(gotext.Get("Error moving the package"), "err", err)
os.Exit(1)
return cliutils.FormatCliExit(gotext.Get("Error moving the package"), err)
}
}