|
1 | 1 | # ~/.bash_functions |
2 | 2 |
|
3 | 3 | { |
4 | | - function __docker() { |
5 | | - if [ -n "$(docker network ls | grep wireguard)" ]; then |
6 | | - docker run \ |
7 | | - --interactive \ |
8 | | - --network "container:wireguard" \ |
9 | | - --rm \ |
10 | | - --tty \ |
11 | | - --user "${UID}:${UID}" \ |
12 | | - --volume "$(readlink -f ${PWD}):/sandbox" \ |
13 | | - --workdir /sandbox \ |
14 | | - "$@" |
15 | | - else |
16 | | - docker run \ |
17 | | - --interactive \ |
18 | | - --rm \ |
19 | | - --tty \ |
20 | | - --user "${UID}:${UID}" \ |
21 | | - --volume "$(readlink -f ${PWD}):/sandbox" \ |
22 | | - --workdir /sandbox \ |
23 | | - "$@" |
24 | | - fi |
25 | | - } |
26 | | - |
27 | | - function __docker_vpn() { |
| 4 | + function __vpn_check() { |
28 | 5 | [ -n "$(docker network ls | grep wireguard)" ] || { |
29 | 6 | docker network create wireguard |
30 | 7 | } |
31 | 8 |
|
| 9 | + [ -n "$(docker ps | grep vpn)" ] || { |
| 10 | + # __vpn_openvpn_start |
| 11 | + __vpn_wireguard_start |
| 12 | + } |
| 13 | + } |
| 14 | + |
| 15 | + function __vpn_wireguard_start() { |
32 | 16 | docker run \ |
33 | 17 | --cap-add=NET_ADMIN \ |
34 | 18 | --cap-add=SYS_MODULE \ |
35 | 19 | --detach \ |
36 | 20 | --device /dev/net/tun \ |
37 | 21 | --env PGID="$(id -g)" \ |
38 | 22 | --env PUID="$(id -u)" \ |
39 | | - --name wireguard \ |
| 23 | + --name vpn \ |
40 | 24 | --publish="127.0.0.1:${RANDOM}:46882/udp" \ |
41 | 25 | --publish="127.0.0.1:${RANDOM}:50052/udp" \ |
42 | 26 | --publish="127.0.0.1:${RANDOM}:51413/tcp" \ |
|
48 | 32 | linuxserver/wireguard |
49 | 33 | } |
50 | 34 |
|
| 35 | + function __docker() { |
| 36 | + __vpn_check && { |
| 37 | + docker run \ |
| 38 | + --interactive \ |
| 39 | + --network "container:vpn" \ |
| 40 | + --rm \ |
| 41 | + --tty \ |
| 42 | + --user "$(id -u):$(id -u)" \ |
| 43 | + --volume "$(readlink -f ${PWD}):/sandbox" \ |
| 44 | + --workdir /sandbox \ |
| 45 | + "$@" |
| 46 | + } |
| 47 | + } |
| 48 | + |
51 | 49 | function dsh() { |
52 | 50 | __docker initbar/lib:latest "$@" |
53 | 51 | } |
|
178 | 176 | } |
179 | 177 |
|
180 | 178 | function tcli() { |
181 | | - if [ -n "$(docker network ls | grep wireguard)" ]; then |
182 | | - __docker \ |
183 | | - --detach \ |
184 | | - --volume="${HOME}/.torrents:/home/ubuntu/Downloads" \ |
185 | | - initbar/lib:latest \ |
186 | | - transmission-cli \ |
187 | | - --blocklist \ |
188 | | - --encryption-preferred \ |
189 | | - --no-downlimit \ |
190 | | - --uplimit 1 \ |
191 | | - --verify \ |
192 | | - "$1" |
193 | | - else |
194 | | - __docker \ |
195 | | - --detach \ |
196 | | - --publish="127.0.0.1:${RANDOM}:46882/udp" \ |
197 | | - --publish="127.0.0.1:${RANDOM}:50052/udp" \ |
198 | | - --publish="127.0.0.1:${RANDOM}:51413/tcp" \ |
199 | | - --publish="127.0.0.1:${RANDOM}:51413/udp" \ |
200 | | - --publish="127.0.0.1:${RANDOM}:9091" \ |
201 | | - --volume="${HOME}/.torrents:/home/ubuntu/Downloads" \ |
202 | | - initbar/lib:latest \ |
203 | | - transmission-cli \ |
204 | | - --blocklist \ |
205 | | - --encryption-preferred \ |
206 | | - --no-downlimit \ |
207 | | - --uplimit 1 \ |
208 | | - --verify \ |
209 | | - "$1" |
210 | | - fi |
| 179 | + __docker \ |
| 180 | + --detach \ |
| 181 | + --volume="${HOME}/.torrents:/home/ubuntu/Downloads" \ |
| 182 | + initbar/lib:latest \ |
| 183 | + transmission-cli \ |
| 184 | + --blocklist \ |
| 185 | + --encryption-preferred \ |
| 186 | + --no-downlimit \ |
| 187 | + --uplimit 1 \ |
| 188 | + --verify \ |
| 189 | + "$1" |
211 | 190 | } |
212 | 191 |
|
213 | 192 | function tclis() { |
214 | 193 | while :; do |
215 | 194 | docker ps |\ |
216 | | - egrep -v 'wireguard|CONTAINER' |\ |
| 195 | + egrep -v 'vpn|CONTAINER' |\ |
217 | 196 | awk '{print $1}' |\ |
218 | 197 | sort |\ |
219 | 198 | xargs -I{} sh -c 'PROGRESS=$(docker logs --tail 1 {} | egrep -o "(Progress: [0-9.]+%)|Seeding" | sort -u | tail -1 | sed "s/^/\[/; s/$/\]/"); echo "> Container: {} ${PROGRESS}"' &&\ |
|
0 commit comments