71 lines
1.4 KiB
Go
71 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/go-resty/resty/v2"
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
const APT_SERVICE_API = "https://apt.lumeweb.com"
|
|
|
|
func main() {
|
|
err := run()
|
|
|
|
if err != nil {
|
|
fmt.Printf("%s", err)
|
|
}
|
|
}
|
|
|
|
func run() error {
|
|
client := resty.New()
|
|
files, _ := filepath.Glob("*.deb")
|
|
pkg := files[0]
|
|
pkg_name := strings.TrimSuffix(pkg, filepath.Ext(pkg))
|
|
pkg_parts := strings.Split(pkg_name, "_")
|
|
pkg_parts = pkg_parts[:len(pkg_parts)-1]
|
|
pkg_name = strings.Join(pkg_parts, "-")
|
|
|
|
repo := os.Getenv("PLUGIN_REPO")
|
|
gpg_pass := os.Getenv("PLUGIN_GPG_PASSWORD")
|
|
distro := os.Getenv("PLUGIN_DISTRO")
|
|
folder := os.Getenv("PLUGIN_FOLDER")
|
|
|
|
client.SetBasicAuth(os.Getenv("PLUGIN_APT_USERNAME"), os.Getenv("PLUGIN_APT_PASSWORD")).SetBaseURL(APT_SERVICE_API)
|
|
|
|
resp, err := client.R().
|
|
SetFile("file", pkg).
|
|
Post("/api/files/" + pkg_name)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
resp, err = client.R().
|
|
Post("/api/repos/" + repo + "/file/" + pkg_name)
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
resp, err = client.R().
|
|
SetBody(map[string]interface{}{
|
|
"Architectures": []string{"amd64"},
|
|
"Passphrase": gpg_pass,
|
|
"SourceKind": "local",
|
|
"Signing": map[string]interface{}{
|
|
"Batch": true,
|
|
"Passphrase": gpg_pass,
|
|
},
|
|
"ForceOverwrite": true,
|
|
}).
|
|
Put(fmt.Sprintf("/api/publish/s3:%s:%s/%s", repo, folder, distro))
|
|
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_ = resp
|
|
|
|
return nil
|
|
}
|