-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTaskfile.yml
More file actions
154 lines (136 loc) · 3.74 KB
/
Taskfile.yml
File metadata and controls
154 lines (136 loc) · 3.74 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
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
version: '3'
vars:
cu: '{{ if eq .OS "Windows_NT" }}coreutils{{ else }}{{ end }}'
EXE: '{{ if eq .OS "Windows_NT" }}.exe{{ else }}{{ end }}'
CORE_DIR: core
# Directory for Go source commands
GO_CMD_DIR: cmd
# Directory for dev builds
DEV_BUILD: .dev
UI_DIR: brie
DOCKMAN_IMAGE_BASE: gouda
tasks:
default:
desc: "Lists all available tasks"
cmds:
- task --list --sort=alphanumeric
init:
desc: "Setup dockman dev environment should be run only once after cloning the project."
deps:
- go:tidy
- ui:tidy
clean:
desc: "Removes all files in {{.DEV_BUILD }}"
cmds:
- coreutils rm -rf {{.DEV_BUILD }}/*
ui:img:
desc: "Calls the image generator for flutter"
dir: "{{ .UI_DIR }}"
cmds:
- flutter pub run flutter_launcher_icons
ui:tidy:
desc: "Cleans up and initializes the flutter app dir"
dir: "{{ .UI_DIR }}"
cmds:
- flutter clean
- flutter pub get
go:tidy:
desc: "Calls go mod tidy in {{.CORE_DIR}}"
dir: "{{.CORE_DIR}}"
cmds:
- go mod tidy -v -x
go:b:*:
label: "go:b:{{ .CMD_NAME }}"
dir: "{{ .CORE_DIR }}"
desc: "Builds a Go target. Usage: task go:<target>"
vars:
CMD_NAME: "{{index .MATCH 0}}"
OUT_PATH: "../{{ .DEV_BUILD }}/{{ .CMD_NAME }}"
BIN_OUT: "{{ .OUT_PATH }}/{{ .CMD_NAME }}{{ .EXE }}"
cmds:
- '{{ .cu }} mkdir -p {{ .OUT_PATH }}'
- go build -v -o {{ .OUT_PATH }} ./{{.GO_CMD_DIR}}/{{.CMD_NAME}}
summary: |
Builds the '{{.CMD_NAME}}' Go command.
Source: '{{.GO_CMD_DIR}}/{{.CMD_NAME}}'
Output: '{{.DEV_BUILD }}/{{.CMD_NAME}}{{.EXE}}'
go:*:
desc: "Builds and runs a Go target. Usage: task go:r:<target>"
vars:
CMD_NAME: "{{index .MATCH 0}}"
EXE: '{{if eq OS "windows"}}.exe{{end}}'
dir: "{{ .DEV_BUILD }}/{{ .CMD_NAME }}"
cmds:
- task: go:b:{{.CMD_NAME}}
- ./{{.CMD_NAME}}{{.EXE}}
dk:
desc: "Builds and runs the main image"
vars:
IMAGE: "{{ .DOCKMAN_IMAGE_BASE }}:dev"
cmds:
- docker build . -t {{.IMAGE}}
- docker run --rm
-v ./{{.DEV_BUILD}}/docker/config:/app/config
-e GOUDA_LOG_LEVEL=debug
-p 9860:9862
{{.IMAGE}}
dk:prune:
desc: "Prune docker images."
cmds:
- docker image prune -f
c:tr:
desc: "start a temp transmission client"
vars:
SAVE_DIR: "build/transmission"
cmds:
- coreutils mkdir -p {{ .SAVE_DIR }}
- docker run --rm
-e PUID=1000
-e PGID=1000
-e USER=admin
-e PASS=admin
-e PEERPORT=9161
-v "./{{ .SAVE_DIR }}:/media"
-p 9092:9091
lscr.io/linuxserver/transmission:latest
c:qb:
desc: "start a temp qbittorrent client"
vars:
SAVE_DIR: "build/qbittorrent"
cmds:
- coreutils mkdir -p {{ .SAVE_DIR }}
- docker run --rm
--name qbittorrent
-e PUID=1000
-e PGID=1000
-e TZ=Etc/UTC
-e WEBUI_PORT=8722
-e TORRENTING_PORT=17693
-v "./{{ .SAVE_DIR }}:/downloads"
-p 8722:8722
-p 17693:17693
-p 17693:17693/udp
lscr.io/linuxserver/qbittorrent:latest
c:dg:
desc: "start a temp deluge client"
vars:
SAVE_DIR: "build/deluge"
cmds:
- coreutils mkdir -p {{ .SAVE_DIR }}
- docker run --rm
--name deluge
-e PUID=1000
-e PGID=1000
-e TZ=Etc/UTC
-v "./{{ .SAVE_DIR }}:/downloads"
-p 8112:8112
-p 17693:17693
-p 17693:17693/udp
-p 58846:58846
linuxserver/deluge:latest
dklx:
vars:
LINUX: gouda:linux
cmds:
- docker build -f Dockerfile.linux.build . -t {{ .LINUX }}
- docker run --rm -v ./:/workspace -it {{ .LINUX }} /bin/bash