forked from Plemya-x/ALR
		
	Изменение работы логики аргумента -p (fix)
This commit is contained in:
		
							
								
								
									
										24
									
								
								build.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								build.go
									
									
									
									
									
								
							@@ -61,19 +61,27 @@ func BuildCmd() *cli.Command {
 | 
				
			|||||||
			ctx := c.Context
 | 
								ctx := c.Context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var script string
 | 
								var script string
 | 
				
			||||||
			packageInput := c.String("package")
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if packageInput != "" {
 | 
								// Проверяем, установлен ли флаг script (-s)
 | 
				
			||||||
				// If the package input contains a '/', use it as the full path.
 | 
								if c.IsSet("script") {
 | 
				
			||||||
 | 
									script = c.String("script")
 | 
				
			||||||
 | 
								} else if c.IsSet("package") {
 | 
				
			||||||
 | 
									// Если флаг script не установлен, проверяем флаг package (-p)
 | 
				
			||||||
 | 
									packageInput := c.String("package")
 | 
				
			||||||
 | 
									// Определяем, содержит ли packageInput символ '/'
 | 
				
			||||||
				if filepath.Dir(packageInput) == "." {
 | 
									if filepath.Dir(packageInput) == "." {
 | 
				
			||||||
					// No directory specified, use 'default' as a prefix.
 | 
										// Не указана директория репозитория, используем 'default' как префикс
 | 
				
			||||||
					script = filepath.Join(config.GetPaths(ctx).RepoDir, "default", packageInput, "alr.sh")
 | 
										script = filepath.Join(config.GetPaths(ctx).RepoDir, "default", packageInput, "alr.sh")
 | 
				
			||||||
				} else {
 | 
									} else {
 | 
				
			||||||
					// Use the full path specified by the user.
 | 
										// Используем путь с указанным репозиторием
 | 
				
			||||||
					script = filepath.Join(config.GetPaths(ctx).RepoDir, packageInput, "alr.sh")
 | 
										script = filepath.Join(config.GetPaths(ctx).RepoDir, packageInput, "alr.sh")
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									// Ни флаги script, ни package не установлены, используем дефолтный скрипт
 | 
				
			||||||
 | 
									script = filepath.Join(config.GetPaths(ctx).RepoDir, "alr.sh")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Проверка автоматического пулла репозиториев
 | 
				
			||||||
			if config.GetInstance(ctx).AutoPull(ctx) {
 | 
								if config.GetInstance(ctx).AutoPull(ctx) {
 | 
				
			||||||
				err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
									err := repos.Pull(ctx, config.Config(ctx).Repos)
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
@@ -82,12 +90,14 @@ func BuildCmd() *cli.Command {
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Обнаружение менеджера пакетов
 | 
				
			||||||
			mgr := manager.Detect()
 | 
								mgr := manager.Detect()
 | 
				
			||||||
			if mgr == nil {
 | 
								if mgr == nil {
 | 
				
			||||||
				slog.Error(gotext.Get("Unable to detect a supported package manager on the system"))
 | 
									slog.Error(gotext.Get("Unable to detect a supported package manager on the system"))
 | 
				
			||||||
				os.Exit(1)
 | 
									os.Exit(1)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Сборка пакета
 | 
				
			||||||
			pkgPaths, _, err := build.BuildPackage(ctx, types.BuildOpts{
 | 
								pkgPaths, _, err := build.BuildPackage(ctx, types.BuildOpts{
 | 
				
			||||||
				Script:      script,
 | 
									Script:      script,
 | 
				
			||||||
				Manager:     mgr,
 | 
									Manager:     mgr,
 | 
				
			||||||
@@ -99,12 +109,14 @@ func BuildCmd() *cli.Command {
 | 
				
			|||||||
				os.Exit(1)
 | 
									os.Exit(1)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Получение текущей рабочей директории
 | 
				
			||||||
			wd, err := os.Getwd()
 | 
								wd, err := os.Getwd()
 | 
				
			||||||
			if err != nil {
 | 
								if err != nil {
 | 
				
			||||||
				slog.Error(gotext.Get("Error getting working directory"), "err", err)
 | 
									slog.Error(gotext.Get("Error getting working directory"), "err", err)
 | 
				
			||||||
				os.Exit(1)
 | 
									os.Exit(1)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								// Перемещение собранных пакетов в рабочую директорию
 | 
				
			||||||
			for _, pkgPath := range pkgPaths {
 | 
								for _, pkgPath := range pkgPaths {
 | 
				
			||||||
				name := filepath.Base(pkgPath)
 | 
									name := filepath.Base(pkgPath)
 | 
				
			||||||
				err = osutils.Move(pkgPath, filepath.Join(wd, name))
 | 
									err = osutils.Move(pkgPath, filepath.Join(wd, name))
 | 
				
			||||||
@@ -117,4 +129,4 @@ func BuildCmd() *cli.Command {
 | 
				
			|||||||
			return nil
 | 
								return nil
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user