refactor: keep only one struct for package
This commit is contained in:
		| @@ -24,13 +24,13 @@ import ( | ||||
| 	"context" | ||||
| 	"encoding/gob" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"log/slog" | ||||
|  | ||||
| 	"github.com/leonelquinteros/gotext" | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/config" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/db" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/manager" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/distro" | ||||
| @@ -158,7 +158,7 @@ func GetBuiltName(deps []*BuiltDep) []string { | ||||
| } | ||||
|  | ||||
| type PackageFinder interface { | ||||
| 	FindPkgs(ctx context.Context, pkgs []string) (map[string][]db.Package, []string, error) | ||||
| 	FindPkgs(ctx context.Context, pkgs []string) (map[string][]alrsh.Package, []string, error) | ||||
| } | ||||
|  | ||||
| type Config interface { | ||||
| @@ -173,12 +173,12 @@ type FunctionsOutput struct { | ||||
| // EXECUTORS | ||||
|  | ||||
| type ScriptResolverExecutor interface { | ||||
| 	ResolveScript(ctx context.Context, pkg *db.Package) *ScriptInfo | ||||
| 	ResolveScript(ctx context.Context, pkg *alrsh.Package) *ScriptInfo | ||||
| } | ||||
|  | ||||
| type ScriptExecutor interface { | ||||
| 	ReadScript(ctx context.Context, scriptPath string) (*alrsh.ALRSh, error) | ||||
| 	ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ALRSh) (string, []*types.BuildVars, error) | ||||
| 	ReadScript(ctx context.Context, scriptPath string) (*alrsh.ScriptFile, error) | ||||
| 	ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ScriptFile) (string, []*alrsh.Package, error) | ||||
| 	PrepareDirs( | ||||
| 		ctx context.Context, | ||||
| 		input *BuildInput, | ||||
| @@ -187,8 +187,8 @@ type ScriptExecutor interface { | ||||
| 	ExecuteSecondPass( | ||||
| 		ctx context.Context, | ||||
| 		input *BuildInput, | ||||
| 		sf *alrsh.ALRSh, | ||||
| 		varsOfPackages []*types.BuildVars, | ||||
| 		sf *alrsh.ScriptFile, | ||||
| 		varsOfPackages []*alrsh.Package, | ||||
| 		repoDeps []string, | ||||
| 		builtDeps []*BuiltDep, | ||||
| 		basePkg string, | ||||
| @@ -196,18 +196,18 @@ type ScriptExecutor interface { | ||||
| } | ||||
|  | ||||
| type CacheExecutor interface { | ||||
| 	CheckForBuiltPackage(ctx context.Context, input *BuildInput, vars *types.BuildVars) (string, bool, error) | ||||
| 	CheckForBuiltPackage(ctx context.Context, input *BuildInput, vars *alrsh.Package) (string, bool, error) | ||||
| } | ||||
|  | ||||
| type ScriptViewerExecutor interface { | ||||
| 	ViewScript(ctx context.Context, input *BuildInput, sf *alrsh.ALRSh, basePkg string) error | ||||
| 	ViewScript(ctx context.Context, input *BuildInput, sf *alrsh.ScriptFile, basePkg string) error | ||||
| } | ||||
|  | ||||
| type CheckerExecutor interface { | ||||
| 	PerformChecks( | ||||
| 		ctx context.Context, | ||||
| 		input *BuildInput, | ||||
| 		vars *types.BuildVars, | ||||
| 		vars *alrsh.Package, | ||||
| 	) (bool, error) | ||||
| } | ||||
|  | ||||
| @@ -285,7 +285,7 @@ func (b *BuildArgs) PkgFormat() string { | ||||
|  | ||||
| type BuildPackageFromDbArgs struct { | ||||
| 	BuildArgs | ||||
| 	Package  *db.Package | ||||
| 	Package  *alrsh.Package | ||||
| 	Packages []string | ||||
| } | ||||
|  | ||||
| @@ -334,19 +334,19 @@ func (b *Builder) BuildPackage( | ||||
| 	slog.Debug("ReadScript") | ||||
| 	sf, err := b.scriptExecutor.ReadScript(ctx, scriptPath) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 		return nil, fmt.Errorf("failed reading script: %w", err) | ||||
| 	} | ||||
|  | ||||
| 	slog.Debug("ExecuteFirstPass") | ||||
| 	basePkg, varsOfPackages, err := b.scriptExecutor.ExecuteFirstPass(ctx, input, sf) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 		return nil, fmt.Errorf("failed ExecuteFirstPass: %w", err) | ||||
| 	} | ||||
|  | ||||
| 	var builtDeps []*BuiltDep | ||||
|  | ||||
| 	if !input.opts.Clean { | ||||
| 		var remainingVars []*types.BuildVars | ||||
| 		var remainingVars []*alrsh.Package | ||||
| 		for _, vars := range varsOfPackages { | ||||
| 			builtPkgPath, ok, err := b.cacheExecutor.CheckForBuiltPackage(ctx, input, vars) | ||||
| 			if err != nil { | ||||
| @@ -367,6 +367,7 @@ func (b *Builder) BuildPackage( | ||||
| 	} | ||||
|  | ||||
| 	slog.Debug("ViewScript") | ||||
| 	slog.Debug("", "varsOfPackages", varsOfPackages) | ||||
| 	err = b.scriptViewerExecutor.ViewScript(ctx, input, sf, basePkg) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| @@ -390,11 +391,11 @@ func (b *Builder) BuildPackage( | ||||
| 	sources := []string{} | ||||
| 	checksums := []string{} | ||||
| 	for _, vars := range varsOfPackages { | ||||
| 		buildDepends = append(buildDepends, vars.BuildDepends...) | ||||
| 		optDepends = append(optDepends, vars.OptDepends...) | ||||
| 		depends = append(depends, vars.Depends...) | ||||
| 		sources = append(sources, vars.Sources...) | ||||
| 		checksums = append(checksums, vars.Checksums...) | ||||
| 		buildDepends = append(buildDepends, vars.BuildDepends.Resolved()...) | ||||
| 		optDepends = append(optDepends, vars.OptDepends.Resolved()...) | ||||
| 		depends = append(depends, vars.Depends.Resolved()...) | ||||
| 		sources = append(sources, vars.Sources.Resolved()...) | ||||
| 		checksums = append(checksums, vars.Checksums.Resolved()...) | ||||
| 	} | ||||
| 	buildDepends = removeDuplicates(buildDepends) | ||||
| 	optDepends = removeDuplicates(optDepends) | ||||
| @@ -481,7 +482,7 @@ func (b *Builder) BuildPackage( | ||||
|  | ||||
| type InstallPkgsArgs struct { | ||||
| 	BuildArgs | ||||
| 	AlrPkgs    []db.Package | ||||
| 	AlrPkgs    []alrsh.Package | ||||
| 	NativePkgs []string | ||||
| } | ||||
|  | ||||
| @@ -492,7 +493,7 @@ func (b *Builder) InstallALRPackages( | ||||
| 		BuildOptsProvider | ||||
| 		PkgFormatProvider | ||||
| 	}, | ||||
| 	alrPkgs []db.Package, | ||||
| 	alrPkgs []alrsh.Package, | ||||
| ) error { | ||||
| 	for _, pkg := range alrPkgs { | ||||
| 		res, err := b.BuildPackageFromDb( | ||||
| @@ -539,7 +540,7 @@ func (b *Builder) BuildALRDeps( | ||||
|  | ||||
| 		found, notFound, err := b.repos.FindPkgs(ctx, depends) // Поиск зависимостей | ||||
| 		if err != nil { | ||||
| 			return nil, nil, err | ||||
| 			return nil, nil, fmt.Errorf("failed FindPkgs: %w", err) | ||||
| 		} | ||||
| 		repoDeps = notFound | ||||
|  | ||||
| @@ -551,7 +552,7 @@ func (b *Builder) BuildALRDeps( | ||||
| 			input.BuildOpts().Interactive, | ||||
| 		) | ||||
| 		type item struct { | ||||
| 			pkg      *db.Package | ||||
| 			pkg      *alrsh.Package | ||||
| 			packages []string | ||||
| 		} | ||||
| 		pkgsMap := make(map[string]*item) | ||||
| @@ -586,7 +587,7 @@ func (b *Builder) BuildALRDeps( | ||||
| 				}, | ||||
| 			) | ||||
| 			if err != nil { | ||||
| 				return nil, nil, err | ||||
| 				return nil, nil, fmt.Errorf("failed build package from db: %w", err) | ||||
| 			} | ||||
|  | ||||
| 			buildDeps = append(buildDeps, res...) | ||||
|   | ||||
| @@ -23,7 +23,7 @@ import ( | ||||
|  | ||||
| 	"github.com/goreleaser/nfpm/v2" | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/types" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| ) | ||||
|  | ||||
| type Cache struct { | ||||
| @@ -33,7 +33,7 @@ type Cache struct { | ||||
| func (c *Cache) CheckForBuiltPackage( | ||||
| 	ctx context.Context, | ||||
| 	input *BuildInput, | ||||
| 	vars *types.BuildVars, | ||||
| 	vars *alrsh.Package, | ||||
| ) (string, bool, error) { | ||||
| 	filename, err := pkgFileName(input, vars) | ||||
| 	if err != nil { | ||||
| @@ -56,7 +56,7 @@ func pkgFileName( | ||||
| 		PkgFormatProvider | ||||
| 		RepositoryProvider | ||||
| 	}, | ||||
| 	vars *types.BuildVars, | ||||
| 	vars *alrsh.Package, | ||||
| ) (string, error) { | ||||
| 	pkgInfo := getBasePkgInfo(vars, input) | ||||
|  | ||||
|   | ||||
| @@ -25,7 +25,7 @@ import ( | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/cliutils" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/cpu" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/manager" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/types" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| ) | ||||
|  | ||||
| type Checker struct { | ||||
| @@ -35,7 +35,7 @@ type Checker struct { | ||||
| func (c *Checker) PerformChecks( | ||||
| 	ctx context.Context, | ||||
| 	input *BuildInput, | ||||
| 	vars *types.BuildVars, | ||||
| 	vars *alrsh.Package, | ||||
| ) (bool, error) { | ||||
| 	if !cpu.IsCompatibleWith(cpu.Arch(), vars.Architectures) { // Проверяем совместимость архитектуры | ||||
| 		cont, err := cliutils.YesNoPrompt( | ||||
|   | ||||
| @@ -29,7 +29,6 @@ import ( | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/logger" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/types" | ||||
| ) | ||||
|  | ||||
| var HandshakeConfig = plugin.HandshakeConfig{ | ||||
| @@ -51,13 +50,13 @@ type ScriptExecutorRPCServer struct { | ||||
| // ReadScript | ||||
| // | ||||
|  | ||||
| func (s *ScriptExecutorRPC) ReadScript(ctx context.Context, scriptPath string) (*alrsh.ALRSh, error) { | ||||
| 	var resp *alrsh.ALRSh | ||||
| func (s *ScriptExecutorRPC) ReadScript(ctx context.Context, scriptPath string) (*alrsh.ScriptFile, error) { | ||||
| 	var resp *alrsh.ScriptFile | ||||
| 	err := s.client.Call("Plugin.ReadScript", scriptPath, &resp) | ||||
| 	return resp, err | ||||
| } | ||||
|  | ||||
| func (s *ScriptExecutorRPCServer) ReadScript(scriptPath string, resp *alrsh.ALRSh) error { | ||||
| func (s *ScriptExecutorRPCServer) ReadScript(scriptPath string, resp *alrsh.ScriptFile) error { | ||||
| 	file, err := s.Impl.ReadScript(context.Background(), scriptPath) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| @@ -73,15 +72,15 @@ func (s *ScriptExecutorRPCServer) ReadScript(scriptPath string, resp *alrsh.ALRS | ||||
|  | ||||
| type ExecuteFirstPassArgs struct { | ||||
| 	Input *BuildInput | ||||
| 	Sf    *alrsh.ALRSh | ||||
| 	Sf    *alrsh.ScriptFile | ||||
| } | ||||
|  | ||||
| type ExecuteFirstPassResp struct { | ||||
| 	BasePkg        string | ||||
| 	VarsOfPackages []*types.BuildVars | ||||
| 	VarsOfPackages []*alrsh.Package | ||||
| } | ||||
|  | ||||
| func (s *ScriptExecutorRPC) ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ALRSh) (string, []*types.BuildVars, error) { | ||||
| func (s *ScriptExecutorRPC) ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ScriptFile) (string, []*alrsh.Package, error) { | ||||
| 	var resp *ExecuteFirstPassResp | ||||
| 	err := s.client.Call("Plugin.ExecuteFirstPass", &ExecuteFirstPassArgs{ | ||||
| 		Input: input, | ||||
| @@ -149,8 +148,8 @@ func (s *ScriptExecutorRPCServer) PrepareDirs(args *PrepareDirsArgs, reply *stru | ||||
|  | ||||
| type ExecuteSecondPassArgs struct { | ||||
| 	Input          *BuildInput | ||||
| 	Sf             *alrsh.ALRSh | ||||
| 	VarsOfPackages []*types.BuildVars | ||||
| 	Sf             *alrsh.ScriptFile | ||||
| 	VarsOfPackages []*alrsh.Package | ||||
| 	RepoDeps       []string | ||||
| 	BuiltDeps      []*BuiltDep | ||||
| 	BasePkg        string | ||||
| @@ -159,8 +158,8 @@ type ExecuteSecondPassArgs struct { | ||||
| func (s *ScriptExecutorRPC) ExecuteSecondPass( | ||||
| 	ctx context.Context, | ||||
| 	input *BuildInput, | ||||
| 	sf *alrsh.ALRSh, | ||||
| 	varsOfPackages []*types.BuildVars, | ||||
| 	sf *alrsh.ScriptFile, | ||||
| 	varsOfPackages []*alrsh.Package, | ||||
| 	repoDeps []string, | ||||
| 	builtDeps []*BuiltDep, | ||||
| 	basePkg string, | ||||
|   | ||||
| @@ -53,11 +53,11 @@ func NewLocalScriptExecutor(cfg Config) *LocalScriptExecutor { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (e *LocalScriptExecutor) ReadScript(ctx context.Context, scriptPath string) (*alrsh.ALRSh, error) { | ||||
| func (e *LocalScriptExecutor) ReadScript(ctx context.Context, scriptPath string) (*alrsh.ScriptFile, error) { | ||||
| 	return alrsh.ReadFromLocal(scriptPath) | ||||
| } | ||||
|  | ||||
| func (e *LocalScriptExecutor) ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ALRSh) (string, []*types.BuildVars, error) { | ||||
| func (e *LocalScriptExecutor) ExecuteFirstPass(ctx context.Context, input *BuildInput, sf *alrsh.ScriptFile) (string, []*alrsh.Package, error) { | ||||
| 	return sf.ParseBuildVars(ctx, input.info, input.packages) | ||||
| } | ||||
|  | ||||
| @@ -86,8 +86,8 @@ func (e *LocalScriptExecutor) PrepareDirs( | ||||
| func (e *LocalScriptExecutor) ExecuteSecondPass( | ||||
| 	ctx context.Context, | ||||
| 	input *BuildInput, | ||||
| 	sf *alrsh.ALRSh, | ||||
| 	varsOfPackages []*types.BuildVars, | ||||
| 	sf *alrsh.ScriptFile, | ||||
| 	varsOfPackages []*alrsh.Package, | ||||
| 	repoDeps []string, | ||||
| 	builtDeps []*BuiltDep, | ||||
| 	basePkg string, | ||||
| @@ -126,7 +126,7 @@ func (e *LocalScriptExecutor) ExecuteSecondPass( | ||||
|  | ||||
| 	for _, vars := range varsOfPackages { | ||||
| 		packageName := "" | ||||
| 		if vars.Base != "" { | ||||
| 		if vars.BasePkgName != "" { | ||||
| 			packageName = vars.Name | ||||
| 		} | ||||
|  | ||||
| @@ -194,24 +194,25 @@ func buildPkgMetadata( | ||||
| 		PkgFormatProvider | ||||
| 		RepositoryProvider | ||||
| 	}, | ||||
| 	vars *types.BuildVars, | ||||
| 	vars *alrsh.Package, | ||||
| 	dirs types.Directories, | ||||
| 	deps []string, | ||||
| 	preferedContents *[]string, | ||||
| ) (*nfpm.Info, error) { | ||||
| 	pkgInfo := getBasePkgInfo(vars, input) | ||||
| 	pkgInfo.Description = vars.Description | ||||
| 	slog.Warn("vars.Description", "vars.Description", vars.Description, "vars.Description.Resolved", vars.Description.Resolved()) | ||||
| 	pkgInfo.Description = vars.Description.Resolved() | ||||
| 	pkgInfo.Platform = "linux" | ||||
| 	pkgInfo.Homepage = vars.Homepage | ||||
| 	pkgInfo.Homepage = vars.Homepage.Resolved() | ||||
| 	pkgInfo.License = strings.Join(vars.Licenses, ", ") | ||||
| 	pkgInfo.Maintainer = vars.Maintainer | ||||
| 	pkgInfo.Maintainer = vars.Maintainer.Resolved() | ||||
| 	pkgInfo.Overridables = nfpm.Overridables{ | ||||
| 		Conflicts: append(vars.Conflicts, vars.Name), | ||||
| 		Replaces:  vars.Replaces, | ||||
| 		Provides:  append(vars.Provides, vars.Name), | ||||
| 		Depends:   deps, | ||||
| 	} | ||||
| 	pkgInfo.Section = vars.Group | ||||
| 	pkgInfo.Section = vars.Group.Resolved() | ||||
|  | ||||
| 	pkgFormat := input.PkgFormat() | ||||
| 	info := input.OSRelease() | ||||
| @@ -224,12 +225,12 @@ func buildPkgMetadata( | ||||
| 	} | ||||
|  | ||||
| 	if pkgFormat == "rpm" { | ||||
| 		pkgInfo.RPM.Group = vars.Group | ||||
| 		pkgInfo.RPM.Group = vars.Group.Resolved() | ||||
|  | ||||
| 		if vars.Summary != "" { | ||||
| 			pkgInfo.RPM.Summary = vars.Summary | ||||
| 		if vars.Summary.Resolved() != "" { | ||||
| 			pkgInfo.RPM.Summary = vars.Summary.Resolved() | ||||
| 		} else { | ||||
| 			lines := strings.SplitN(vars.Description, "\n", 2) | ||||
| 			lines := strings.SplitN(vars.Description.Resolved(), "\n", 2) | ||||
| 			pkgInfo.RPM.Summary = lines[0] | ||||
| 		} | ||||
| 	} | ||||
| @@ -250,17 +251,17 @@ func buildPkgMetadata( | ||||
| 	} | ||||
| 	pkgInfo.Overridables.Contents = contents | ||||
|  | ||||
| 	if len(vars.AutoProv) == 1 && decoder.IsTruthy(vars.AutoProv[0]) { | ||||
| 	if len(vars.AutoProv.Resolved()) == 1 && decoder.IsTruthy(vars.AutoProv.Resolved()[0]) { | ||||
| 		f := finddeps.New(info, pkgFormat) | ||||
| 		err = f.FindProvides(ctx, pkgInfo, dirs, vars.AutoProvSkipList) | ||||
| 		err = f.FindProvides(ctx, pkgInfo, dirs, vars.AutoProvSkipList.Resolved()) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if len(vars.AutoReq) == 1 && decoder.IsTruthy(vars.AutoReq[0]) { | ||||
| 	if len(vars.AutoReq.Resolved()) == 1 && decoder.IsTruthy(vars.AutoReq.Resolved()[0]) { | ||||
| 		f := finddeps.New(info, pkgFormat) | ||||
| 		err = f.FindRequires(ctx, pkgInfo, dirs, vars.AutoReqSkipList) | ||||
| 		err = f.FindRequires(ctx, pkgInfo, dirs, vars.AutoReqSkipList.Resolved()) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
|   | ||||
| @@ -20,7 +20,7 @@ import ( | ||||
| 	"context" | ||||
| 	"path/filepath" | ||||
|  | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/db" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| ) | ||||
|  | ||||
| type ScriptResolver struct { | ||||
| @@ -34,7 +34,7 @@ type ScriptInfo struct { | ||||
|  | ||||
| func (s *ScriptResolver) ResolveScript( | ||||
| 	ctx context.Context, | ||||
| 	pkg *db.Package, | ||||
| 	pkg *alrsh.Package, | ||||
| ) *ScriptInfo { | ||||
| 	var repository, script string | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,7 @@ type ScriptViewer struct { | ||||
| func (s *ScriptViewer) ViewScript( | ||||
| 	ctx context.Context, | ||||
| 	input *BuildInput, | ||||
| 	a *alrsh.ALRSh, | ||||
| 	a *alrsh.ScriptFile, | ||||
| 	basePkg string, | ||||
| ) error { | ||||
| 	return cliutils.PromptViewScript( | ||||
|   | ||||
| @@ -40,6 +40,7 @@ import ( | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/cpu" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/manager" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/internal/overrides" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/alrsh" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/distro" | ||||
| 	"gitea.plemya-x.ru/Plemya-x/ALR/pkg/types" | ||||
| ) | ||||
| @@ -59,7 +60,7 @@ func prepareDirs(dirs types.Directories) error { | ||||
|  | ||||
| // Функция buildContents создает секцию содержимого пакета, которая содержит файлы, | ||||
| // которые будут включены в конечный пакет. | ||||
| func buildContents(vars *types.BuildVars, dirs types.Directories, preferedContents *[]string) ([]*files.Content, error) { | ||||
| func buildContents(vars *alrsh.Package, dirs types.Directories, preferedContents *[]string) ([]*files.Content, error) { | ||||
| 	contents := []*files.Content{} | ||||
|  | ||||
| 	processPath := func(path, trimmed string, prefered bool) error { | ||||
| @@ -122,7 +123,7 @@ func buildContents(vars *types.BuildVars, dirs types.Directories, preferedConten | ||||
| 			}, | ||||
| 		} | ||||
|  | ||||
| 		if slices.Contains(vars.Backup, trimmed) { | ||||
| 		if slices.Contains(vars.Backup.Resolved(), trimmed) { | ||||
| 			fileContent.Type = "config|noreplace" | ||||
| 		} | ||||
|  | ||||
| @@ -155,7 +156,7 @@ func buildContents(vars *types.BuildVars, dirs types.Directories, preferedConten | ||||
|  | ||||
| var RegexpALRPackageName = regexp.MustCompile(`^(?P<package>[^+]+)\+alr-(?P<repo>.+)$`) | ||||
|  | ||||
| func getBasePkgInfo(vars *types.BuildVars, input interface { | ||||
| func getBasePkgInfo(vars *alrsh.Package, input interface { | ||||
| 	RepositoryProvider | ||||
| 	OsInfoProvider | ||||
| }, | ||||
| @@ -211,39 +212,39 @@ func createBuildEnvVars(info *distro.OSRelease, dirs types.Directories) []string | ||||
| } | ||||
|  | ||||
| // Функция setScripts добавляет скрипты-перехватчики к метаданным пакета. | ||||
| func setScripts(vars *types.BuildVars, info *nfpm.Info, scriptDir string) { | ||||
| 	if vars.Scripts.PreInstall != "" { | ||||
| 		info.Scripts.PreInstall = filepath.Join(scriptDir, vars.Scripts.PreInstall) | ||||
| func setScripts(vars *alrsh.Package, info *nfpm.Info, scriptDir string) { | ||||
| 	if vars.Scripts.Resolved().PreInstall != "" { | ||||
| 		info.Scripts.PreInstall = filepath.Join(scriptDir, vars.Scripts.Resolved().PreInstall) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PostInstall != "" { | ||||
| 		info.Scripts.PostInstall = filepath.Join(scriptDir, vars.Scripts.PostInstall) | ||||
| 	if vars.Scripts.Resolved().PostInstall != "" { | ||||
| 		info.Scripts.PostInstall = filepath.Join(scriptDir, vars.Scripts.Resolved().PostInstall) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PreRemove != "" { | ||||
| 		info.Scripts.PreRemove = filepath.Join(scriptDir, vars.Scripts.PreRemove) | ||||
| 	if vars.Scripts.Resolved().PreRemove != "" { | ||||
| 		info.Scripts.PreRemove = filepath.Join(scriptDir, vars.Scripts.Resolved().PreRemove) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PostRemove != "" { | ||||
| 		info.Scripts.PostRemove = filepath.Join(scriptDir, vars.Scripts.PostRemove) | ||||
| 	if vars.Scripts.Resolved().PostRemove != "" { | ||||
| 		info.Scripts.PostRemove = filepath.Join(scriptDir, vars.Scripts.Resolved().PostRemove) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PreUpgrade != "" { | ||||
| 		info.ArchLinux.Scripts.PreUpgrade = filepath.Join(scriptDir, vars.Scripts.PreUpgrade) | ||||
| 		info.APK.Scripts.PreUpgrade = filepath.Join(scriptDir, vars.Scripts.PreUpgrade) | ||||
| 	if vars.Scripts.Resolved().PreUpgrade != "" { | ||||
| 		info.ArchLinux.Scripts.PreUpgrade = filepath.Join(scriptDir, vars.Scripts.Resolved().PreUpgrade) | ||||
| 		info.APK.Scripts.PreUpgrade = filepath.Join(scriptDir, vars.Scripts.Resolved().PreUpgrade) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PostUpgrade != "" { | ||||
| 		info.ArchLinux.Scripts.PostUpgrade = filepath.Join(scriptDir, vars.Scripts.PostUpgrade) | ||||
| 		info.APK.Scripts.PostUpgrade = filepath.Join(scriptDir, vars.Scripts.PostUpgrade) | ||||
| 	if vars.Scripts.Resolved().PostUpgrade != "" { | ||||
| 		info.ArchLinux.Scripts.PostUpgrade = filepath.Join(scriptDir, vars.Scripts.Resolved().PostUpgrade) | ||||
| 		info.APK.Scripts.PostUpgrade = filepath.Join(scriptDir, vars.Scripts.Resolved().PostUpgrade) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PreTrans != "" { | ||||
| 		info.RPM.Scripts.PreTrans = filepath.Join(scriptDir, vars.Scripts.PreTrans) | ||||
| 	if vars.Scripts.Resolved().PreTrans != "" { | ||||
| 		info.RPM.Scripts.PreTrans = filepath.Join(scriptDir, vars.Scripts.Resolved().PreTrans) | ||||
| 	} | ||||
|  | ||||
| 	if vars.Scripts.PostTrans != "" { | ||||
| 		info.RPM.Scripts.PostTrans = filepath.Join(scriptDir, vars.Scripts.PostTrans) | ||||
| 	if vars.Scripts.Resolved().PostTrans != "" { | ||||
| 		info.RPM.Scripts.PostTrans = filepath.Join(scriptDir, vars.Scripts.Resolved().PostTrans) | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user