Fix package name
This commit is contained in:
parent
2d2c2403b3
commit
3c922d7445
|
@ -30,7 +30,7 @@ build-i386:
|
||||||
- GOOS=linux GOARCH=386 go build -o build/i386/deb-simple
|
- GOOS=linux GOARCH=386 go build -o build/i386/deb-simple
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build
|
- build/i386
|
||||||
cache:
|
cache:
|
||||||
key: "pipeline-$CI_PIPELINE_ID"
|
key: "pipeline-$CI_PIPELINE_ID"
|
||||||
policy: pull
|
policy: pull
|
||||||
|
@ -45,7 +45,7 @@ build-amd64:
|
||||||
- go build -o build/amd64/deb-simple
|
- go build -o build/amd64/deb-simple
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build
|
- build/amd64
|
||||||
cache:
|
cache:
|
||||||
key: "pipeline-$CI_PIPELINE_ID"
|
key: "pipeline-$CI_PIPELINE_ID"
|
||||||
policy: pull
|
policy: pull
|
||||||
|
@ -60,7 +60,7 @@ build-armv7:
|
||||||
- GOOS=linux GOARCH=arm GOARM=7 go build -o build/armv7/deb-simple
|
- GOOS=linux GOARCH=arm GOARM=7 go build -o build/armv7/deb-simple
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- build
|
- build/armv7
|
||||||
cache:
|
cache:
|
||||||
key: "pipeline-$CI_PIPELINE_ID"
|
key: "pipeline-$CI_PIPELINE_ID"
|
||||||
policy: pull
|
policy: pull
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
fpm -s dir -t deb -p build/$ARCH/deb-simple_$VERSION.deb \
|
fpm -s dir -t deb -p build/$ARCH/deb-simple_$VERSION.deb \
|
||||||
-n astra -v $VERSION \
|
-n deb-simple -v $VERSION \
|
||||||
--config-files /etc/deb-simple.conf \
|
--config-files /etc/deb-simple.conf \
|
||||||
--deb-priority optional --force \
|
--deb-priority optional --force \
|
||||||
--deb-compression bzip2 \
|
--deb-compression bzip2 \
|
||||||
|
@ -8,4 +8,6 @@ fpm -s dir -t deb -p build/$ARCH/deb-simple_$VERSION.deb \
|
||||||
--before-install packaging/scripts/preinst.deb \
|
--before-install packaging/scripts/preinst.deb \
|
||||||
-a $ARCH build/$ARCH/deb-simple=/usr/bin/deb-simple \
|
-a $ARCH build/$ARCH/deb-simple=/usr/bin/deb-simple \
|
||||||
packaging/deb-simple.service=/lib/systemd/system/deb-simple.service \
|
packaging/deb-simple.service=/lib/systemd/system/deb-simple.service \
|
||||||
sample_conf.ini=/etc/deb-simple.conf
|
sample_conf.ini=/etc/deb-simple.conf
|
||||||
|
|
||||||
|
curl -X POST "$UPLOAD_URL" -F "file=@build/$ARCH/deb-simple_$VERSION.deb"
|
|
@ -3,12 +3,7 @@ package simple
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/blakesmith/ar"
|
|
||||||
"bytes"
|
|
||||||
"io"
|
"io"
|
||||||
"compress/gzip"
|
|
||||||
"archive/tar"
|
|
||||||
"log"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"strings"
|
"strings"
|
||||||
|
@ -21,74 +16,6 @@ import (
|
||||||
"meow.tf/deb-simple/deb/release"
|
"meow.tf/deb-simple/deb/release"
|
||||||
)
|
)
|
||||||
|
|
||||||
func inspectPackage(filename string) (string, error) {
|
|
||||||
f, err := os.Open(filename)
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("error opening package file %s: %s", filename, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
arReader := ar.NewReader(f)
|
|
||||||
defer f.Close()
|
|
||||||
var controlBuf bytes.Buffer
|
|
||||||
|
|
||||||
for {
|
|
||||||
header, err := arReader.Next()
|
|
||||||
|
|
||||||
if err == io.EOF {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("error in inspectPackage loop: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if strings.Trim(header.Name, "/") == "control.tar.gz" {
|
|
||||||
io.Copy(&controlBuf, arReader)
|
|
||||||
return inspectPackageControl(controlBuf)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func inspectPackageControl(filename bytes.Buffer) (string, error) {
|
|
||||||
gzf, err := gzip.NewReader(bytes.NewReader(filename.Bytes()))
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("error creating gzip reader: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
tarReader := tar.NewReader(gzf)
|
|
||||||
var controlBuf bytes.Buffer
|
|
||||||
for {
|
|
||||||
header, err := tarReader.Next()
|
|
||||||
|
|
||||||
if err == io.EOF {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return "", fmt.Errorf("failed to inspect package: %s", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
name := header.Name
|
|
||||||
|
|
||||||
switch header.Typeflag {
|
|
||||||
case tar.TypeDir:
|
|
||||||
continue
|
|
||||||
case tar.TypeReg:
|
|
||||||
if name == "./control" {
|
|
||||||
io.Copy(&controlBuf, tarReader)
|
|
||||||
return controlBuf.String(), nil
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
log.Printf(
|
|
||||||
"Unable to figure out type : %c in file %s\n",
|
|
||||||
header.Typeflag, name,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return "", nil
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
func createRelease(config Conf, distro string) error {
|
func createRelease(config Conf, distro string) error {
|
||||||
outfile, err := os.Create(filepath.Join(config.DistPath(distro), "Release"))
|
outfile, err := os.Create(filepath.Join(config.DistPath(distro), "Release"))
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
package archive
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"fmt"
|
||||||
|
"github.com/blakesmith/ar"
|
||||||
|
"bytes"
|
||||||
|
"io"
|
||||||
|
"strings"
|
||||||
|
"compress/gzip"
|
||||||
|
"archive/tar"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func InspectPackage(filename string) (string, error) {
|
||||||
|
f, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("error opening package file %s: %s", filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
arReader := ar.NewReader(f)
|
||||||
|
defer f.Close()
|
||||||
|
var controlBuf bytes.Buffer
|
||||||
|
|
||||||
|
for {
|
||||||
|
header, err := arReader.Next()
|
||||||
|
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("error in inspectPackage loop: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.Trim(header.Name, "/") == "control.tar.gz" {
|
||||||
|
io.Copy(&controlBuf, arReader)
|
||||||
|
return InspectPackageControl(controlBuf)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func InspectPackageControl(filename bytes.Buffer) (string, error) {
|
||||||
|
gzf, err := gzip.NewReader(bytes.NewReader(filename.Bytes()))
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("error creating gzip reader: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
tarReader := tar.NewReader(gzf)
|
||||||
|
var controlBuf bytes.Buffer
|
||||||
|
for {
|
||||||
|
header, err := tarReader.Next()
|
||||||
|
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to inspect package: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
name := header.Name
|
||||||
|
|
||||||
|
switch header.Typeflag {
|
||||||
|
case tar.TypeDir:
|
||||||
|
continue
|
||||||
|
case tar.TypeReg:
|
||||||
|
if name == "./control" {
|
||||||
|
io.Copy(&controlBuf, tarReader)
|
||||||
|
return controlBuf.String(), nil
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
log.Printf(
|
||||||
|
"Unable to figure out type : %c in file %s\n",
|
||||||
|
header.Typeflag, name,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "", nil
|
||||||
|
}
|
|
@ -17,6 +17,7 @@ import (
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"github.com/blang/semver"
|
"github.com/blang/semver"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"meow.tf/deb-simple/deb/archive"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -163,7 +164,7 @@ func newPackageFile(path, name string) (*PackageFile, error) {
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
p.ControlData, err = inspectPackage(debPath)
|
p.ControlData, err = archive.InspectPackage(debPath)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Reference in New Issue