-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.hl
More file actions
114 lines (97 loc) · 2.45 KB
/
Copy pathbuild.hl
File metadata and controls
114 lines (97 loc) · 2.45 KB
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/usr/bin/hl
using <gen 2>
// go [golang]
% BINARY: str = hackeros-builder
% PREFIX: str = /usr/local
% DESTDIR: str =
% INSTALL_DIR: str = @DESTDIR@PREFIX/bin
;; Wersja z gita (fallback: "dev")
> git describe --tags --always --dirty 2>/dev/null |> @VERSION
? err
% VERSION: str = dev
done
% BUILD_FLAGS: str = -mod=vendor -ldflags "-s -w -X main.version=@VERSION"
: build def
\~> [build] @BINARY v@VERSION (vendor, offline)...
>> go build @BUILD_FLAGS -o @BINARY .
\~> [build] ok: ./@BINARY
done
: build-mod def
\~> [build-mod] @BINARY v@VERSION (sieć, -mod=mod)...
>> GONOSUMDB='*' GOFLAGS=-mod=mod go build -ldflags "-s -w -X main.version=@VERSION" -o @BINARY .
\~> [build-mod] ok: ./@BINARY
done
: install def
-- build
\~> [install] @INSTALL_DIR/@BINARY
>> install -Dm755 @BINARY @INSTALL_DIR/@BINARY
\~> [install] ok
done
: uninstall def
\~> [uninstall] usuwanie @INSTALL_DIR/@BINARY
>> rm -f @INSTALL_DIR/@BINARY
done
: clean def
\~> [clean] usuwanie ./@BINARY
>> rm -f @BINARY
done
: test def
>> go test -mod=vendor ./...
done
: fmt def
>> gofmt -w .
done
: vet def
>> go vet -mod=vendor ./...
done
: tidy def
\~> [tidy] go mod tidy (wymaga internetu)...
>> go mod tidy
\~> [tidy] ok -- zaktualizowano go.sum
done
: vendor-sync def
\~> [vendor-sync] go mod vendor (wymaga internetu)...
>> GONOSUMDB='*' go mod vendor
\~> [vendor-sync] ok -- vendor/ zaktualizowany
done
: help def
\~> Dostępne cele:
\~> build kompiluje hackeros-builder (używa vendor/, offline)
\~> build-mod kompiluje przez sieć (-mod=mod)
\~> install kompiluje i instaluje do @INSTALL_DIR
\~> uninstall usuwa @INSTALL_DIR/@BINARY
\~> clean usuwa skompilowaną binarkę
\~> test uruchamia testy jednostkowe
\~> fmt formatuje kod przez gofmt
\~> vet uruchamia go vet
\~> tidy aktualizuje go.sum (wymaga internetu)
\~> vendor-sync regeneruje vendor/ (wymaga internetu)
\~> help wyświetla tę pomoc
done
;; ===================== Dispatch =====================
? switch @arg0
| build
-- build
| build-mod
-- build-mod
| install
-- install
| uninstall
-- uninstall
| clean
-- clean
| test
-- test
| fmt
-- fmt
| vet
-- vet
| tidy
-- tidy
| vendor-sync
-- vendor-sync
| help
-- help
| *
-- help
done