summarylogtreecommitdiffstats
path: root/make.go
blob: 0675d50975d9dc31086d4b921d54e72099ded30b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package main

import (
	"fmt"
	"os"
	"os/exec"
	"strconv"
)

var template = `# Maintainer: Equationzhao <equationzhao at foxmail dot com>
pkgname='g-ls'
pkgver=%s
pkgrel=%d
pkgdesc='a powerful ls in golang'
arch=($CARCH)
url='https://github.com/Equationzhao/g'
license=('MIT')
makedepends=('go')
backup=("etc/$pkgname/config.conf")
source=("g-$pkgver.tar.gz::$url/archive/refs/tags/v$pkgver.tar.gz")
sha256sums=('6d39469e541eec15fcad38301faf8879a84e0566dde156e3d6d582541036135f')


build() {
    cd "$srcdir/g-$pkgver"
    go build -ldflags="-s -w -v -X main.compiledAt=$(date +%%Y%%m%%d%%H%%M%%S)" -o g
}

package() {
    cd "$srcdir/g-$pkgver"
    mkdir -p "$pkgdir/usr/bin"
    install -m755 g "$pkgdir/usr/bin"
    cd man
    gzip g.1
    install -Dm644 g.1.gz "$pkgdir/usr/share/man/man1/g.1.gz"
}
`

var (
	v   = ""
	rel = 1
)

func main() {
	switch len(os.Args) {
	case 0:
	case 1:
		println("plz specify version")
		return
	case 2:
		v = os.Args[1]
	case 3:
		v = os.Args[1]
		var err error
		rel, err = strconv.Atoi(os.Args[2])
		if err != nil {
			println("rel must be int")
			return
		}
	default:
		println("what hell are you doing?")
		return
	}

	content := fmt.Sprintf(template, v, rel)
	err := exec.Command("rm", "-rf", "PKGBUILD").Run()
	if err != nil {
		println(err.Error())
		return
	}
	pkg, _ := os.OpenFile("PKGBUILD", os.O_CREATE|os.O_WRONLY, 0o644)
	_, err = pkg.Write([]byte(content))
	if err != nil {
		println(err.Error())
		return
	}
	result, err := exec.Command("bash", "make.sh").Output()
	if err != nil {
		println(err.Error())
		return
	}
	println(string(result))
}