forked from cointop-sh/cointop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
203 lines (142 loc) · 4.74 KB
/
Makefile
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
VERSION = $$(git describe --abbrev=0 --tags)
VERSION_DATE = $$(git log -1 --pretty='%ad' --date=format:'%Y-%m-%d' $(VERSION))
COMMIT_REV = $$(git rev-list -n 1 $(VERSION))
all: build
version:
@echo $(VERSION)
commit_rev:
@echo $(COMMIT_REV)
start:
go run main.go
deps-clean:
go clean -modcache
rm -rf vendor
deps-download:
GO111MODULE=on go mod download
GO111MODULE=on go mod vendor
deps: deps-clean deps-download
vendor: deps
debug:
DEBUG=1 go run main.go
build:
go build -ldflags "-X github.com/miguelmota/cointop/cointop.version=$(VERSION)" -o bin/cointop main.go
# http://macappstore.org/upx
build-mac: clean-mac
env GOARCH=amd64 go build -ldflags "-s -w -X github.com/miguelmota/cointop/cointop.version=$(VERSION)" -o bin/macos/cointop && upx bin/macos/cointop
build-linux: clean-linux
env GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -X github.com/miguelmota/cointop/cointop.version=$(VERSION)" -o bin/linux/cointop && upx bin/linux/cointop
build-multiple: clean
env GOARCH=amd64 go build -ldflags "-s -w -X github.com/miguelmota/cointop/cointop.version=$(VERSION)" -o bin/cointop64 && upx bin/cointop64 && \
env GOARCH=386 go build -ldflags "-s -w -X github.com/miguelmota/cointop/cointop.version=$(VERSION)" -o bin/cointop32 && upx bin/cointop32
clean-mac:
go clean && \
rm -rf bin/mac
clean-linux:
go clean && \
rm -rf bin/linux
clean:
go clean && \
rm -rf bin/
test:
go test ./...
cointop-test:
go run main.go -test
cointop-version:
go run main.go -version
cointop-clean:
go run main.go -clean
cointop-reset:
go run main.go -reset
snap-clean:
snapcraft clean
rm -f cointop_*.snap
snap-stage:
# https://github.com/elopio/go/issues/2
mv go.mod go.mod~ ;GO111MODULE=off GOFLAGS="-ldflags=-s -ldflags=-w -ldflags=-X=github.com/miguelmota/cointop/cointop.version=$(VERSION)" snapcraft stage; mv go.mod~ go.mod
snap-install:
sudo apt install snapd
sudo snap install snapcraft --classic
snap-build: snap-clean snap-stage
snapcraft snap
snap-deploy:
snapcraft push cointop_*.snap --release stable
snap-remove:
snap remove cointop
snap-build-and-deploy: snap-build snap-deploy snap-clean
@echo "done"
snap: snap-build-and-deploy
flatpak-build:
flatpak-builder --force-clean build-dir com.github.miguelmota.Cointop.json
flatpak-run-test:
flatpak-builder --run build-dir com.github.miguelmota.Cointop.json cointop
flatpak-repo:
flatpak-builder --repo=repo --force-clean build-dir com.github.miguelmota.Cointop.json
flatpak-add:
flatpak --user remote-add --no-gpg-verify cointop-repo repo
flatpak-remove:
flatpak --user remote-delete cointop-repo
flatpak-install:
flatpak --user install cointop-repo com.github.miguelmota.Cointop
flatpak-run:
flatpak run com.github.miguelmota.Cointop
flatpak-update-version:
xmlstarlet ed --inplace -u '/component/releases/release/@version' -v $(VERSION) .flathub/com.github.miguelmota.Cointop.appdata.xml
xmlstarlet ed --inplace -u '/component/releases/release/@date' -v $(VERSION_DATE) .flathub/com.github.miguelmota.Cointop.appdata.xml
rpm-install-deps:
sudo dnf install -y rpm-build
sudo dnf install -y dnf-plugins-core
rpm-cp-specs:
cp .rpm/cointop.spec ~/rpmbuild/SPECS/
rpm-build:
rpmbuild --nodeps -ba ~/rpmbuild/SPECS/cointop.spec
rpm-lint:
rpmlint ~/rpmbuild/SPECS/cointop.spec
rpm-dirs:
mkdir -p ~/rpmbuild
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
chmod -R a+rwx ~/rpmbuild
rpm-download:
wget https://github.com/miguelmota/cointop/archive/$(VERSION).tar.gz -O ~/rpmbuild/SOURCES/$(VERSION).tar.gz
copr-install-cli:
sudo dnf install -y copr-cli
copr-deps: copr-install-cli rpm-install-deps
copr-create-project:
copr-cli create cointop --chroot fedora-rawhide-x86_64
copr-build:
copr-cli build cointop ~/rpmbuild/SRPMS/cointop-*.rpm
rm -rf ~/rpmbuild/SRPMS/cointop-*.rpm
.PHONY: copr
copr: rpm-dirs rpm-cp-specs rpm-download rpm-build copr-build
brew-clean: brew-remove
brew cleanup --force cointop
brew prune
brew-remove:
brew uninstall --force cointop
brew-build: brew-remove
brew install --build-from-source cointop.rb
brew-audit:
brew audit --strict cointop.rb
brew-test:
brew test cointop.rb
brew-tap:
brew tap cointop/cointop https://github.com/miguelmota/cointop
brew-untap:
brew untap cointop/cointop
git-rm-large:
java -jar bfg.jar --strip-blobs-bigger-than 200K .
git-repack:
git reflog expire --expire=now --all
git fsck --full --unreachable
git repack -A -d
git gc --aggressive --prune=now
release:
rm -rf dist
VERSION=$(VERSION) goreleaser
docker-build:
docker build --build-arg VERSION=$(VERSION) -t cointop/cointop .
docker-run:
docker run -it cointop/cointop
docker-push:
docker push cointop/cointop:latest
docker-run-ssh:
docker run -p 2222:22 -v ~/.ssh/demo:/keys --entrypoint cointop -it cointop/cointop server -k /keys/id_rsa