initial relic support as jarsigner alternative

This commit is contained in:
doesnm 2025-06-04 15:18:56 +00:00
parent 241b42fc56
commit 330754ef4f

21
main.go
View file

@ -80,6 +80,7 @@ type Config struct {
KeyStoreAlias string `toml:"keystore_alias"`
BinarySources []string `toml:"binarySources"`
GithubToken string `toml:"github_token"`
RelicConfig string `toml:"relic_config"`
}
type User struct {
@ -545,6 +546,13 @@ func signJarWithJarsigner(jarFile string, keystore string, password string, alia
return err, string(output) // Возвращаем ошибку и вывод как строку
}
func signJarWithRelic(jarFile string, keystore string, password string, alias string,relicConfig string) (error, string) {
cmd := exec.Command("relic", "sign","--digest","SHA1","--key-alias",alias,"--file",jarFile,"--output",jarFile,"--key",keystore,"--config",relicConfig)
//cmd.Env = append(cmd.Env, "KEYSTORE_PASSWORD="+password)
output, err := cmd.CombinedOutput() // Сначала получаем вывод и ошибку
return err, string(output) // Возвращаем ошибку и вывод как строку
}
func createAppFromReleases(releases []Release, repo string, index int,indexCache Index,config Config) (App, []Package,error) {
// Получаем информацию о репозитории
repository, err := getRepositoryInfo(repo,config)
@ -599,7 +607,7 @@ func main() {
var config Config
configPath := flag.String("config", "config.toml", "Path to the configuration file")
useRelic := flag.Bool("relic",false,"Use relic instead that jarsigner")
// Parse the command-line flags
flag.Parse()
file, err := os.Open(*configPath)
@ -689,11 +697,20 @@ for _, source := range config.BinarySources {
p12File := config.KeyStorePath // Укажите путь к вашему P12 файлу
password := config.KeyStorePassword // Укажите пароль для P12 файла
alias := config.KeyStoreAlias // Укажите алиас для ключа
if *useRelic == true {
err, output := signJarWithRelic("index-v1.jar", p12File, password, alias,config.RelicConfig)
if err != nil {
fmt.Println("Error signing JAR:", err, output)
return
}
fmt.Println("JAR file signed successfully.")
}else{
err, output := signJarWithJarsigner("index-v1.jar", p12File, password, alias)
if err != nil {
fmt.Println("Error signing JAR:", err, output)
return
}
fmt.Println("JAR file signed successfully.")
}
}