Compare commits

...

2 Commits

Author SHA1 Message Date
Derrick Hammer 088fdf16d9
*Port to golang 2022-09-28 18:33:11 -04:00
Derrick Hammer f7f014e711
*Initial version 2022-09-27 19:19:52 -04:00
4 changed files with 81 additions and 0 deletions

5
Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM alpine
ADD aptly-publisher /bin/
RUN chmod +x /bin/aptly-publisher
RUN apk -Uuv add ca-certificates libc6-compat
ENTRYPOINT /bin/aptly-publisher

BIN
aptly-publisher Executable file

Binary file not shown.

7
go.mod Normal file
View File

@ -0,0 +1,7 @@
module aptly-publisher
go 1.18
require github.com/go-resty/resty/v2 v2.7.0
require golang.org/x/net v0.0.0-20211029224645-99673261e6eb // indirect

69
main.go Normal file
View File

@ -0,0 +1,69 @@
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,
},
}).
Put(fmt.Sprintf("/api/publish/s3:%s:%s/%s", repo, folder, distro))
if err != nil {
return err
}
_ = resp
return nil
}