Artifact
7303eb8a0e3e792596f2064b0a195fa75447bfbf8f4f80b19dc6c91b071b488c:
- Executable file
bin/fslsrv
— part of check-in
[07f937c919]
at
2024-03-20 15:26:08
on branch trunk
— Small fix to previous
(user:
tangent
size: 1605)
0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 49 4d 41 47 #!/bin/bash.IMAG
0010: 45 3d 64 6f 63 6b 65 72 2e 69 6f 2f 74 61 6e 67 E=docker.io/tang
0020: 65 6e 74 73 6f 66 74 2f 66 6f 73 73 69 6c 0a 53 entsoft/fossil.S
0030: 49 54 45 3d 68 74 74 70 73 3a 2f 2f 65 78 61 6d ITE=https://exam
0040: 70 6c 65 2e 63 6f 6d 0a 50 4f 52 54 3d 31 32 33 ple.com.PORT=123
0050: 34 35 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61 45..function sta
0060: 72 74 5f 6f 6e 65 28 29 20 7b 0a 20 20 20 20 62 rt_one() {. b
0070: 6e 3d 24 31 0a 20 20 20 20 6c 6e 3d 22 24 32 22 n=$1. ln="$2"
0080: 0a 20 20 20 20 6e 61 6d 65 3d 66 6f 73 73 69 6c . name=fossil
0090: 2d 24 62 6e 0a 0a 20 20 20 20 73 79 73 74 65 6d -$bn.. system
00a0: 63 74 6c 20 2d 2d 75 73 65 72 20 73 74 6f 70 20 ctl --user stop
00b0: 24 6e 61 6d 65 20 3e 20 2f 64 65 76 2f 6e 75 6c $name > /dev/nul
00c0: 6c 20 32 3e 26 31 0a 20 20 20 20 70 6f 64 6d 61 l 2>&1. podma
00d0: 6e 20 63 6f 6e 74 61 69 6e 65 72 20 72 6d 20 24 n container rm $
00e0: 6e 61 6d 65 20 3e 20 2f 64 65 76 2f 6e 75 6c 6c name > /dev/null
00f0: 20 32 3e 26 31 0a 20 20 20 20 69 64 3d 24 28 70 2>&1. id=$(p
0100: 6f 64 6d 61 6e 20 63 72 65 61 74 65 20 5c 0a 20 odman create \.
0110: 20 20 20 20 20 20 20 2d 2d 6e 61 6d 65 20 24 6e --name $n
0120: 61 6d 65 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d ame \. --
0130: 63 61 70 2d 64 72 6f 70 20 41 55 44 49 54 5f 57 cap-drop AUDIT_W
0140: 52 49 54 45 20 5c 0a 20 20 20 20 20 20 20 20 2d RITE \. -
0150: 2d 63 61 70 2d 64 72 6f 70 20 43 48 4f 57 4e 20 -cap-drop CHOWN
0160: 5c 0a 20 20 20 20 20 20 20 20 2d 2d 63 61 70 2d \. --cap-
0170: 64 72 6f 70 20 46 53 45 54 49 44 20 5c 0a 20 20 drop FSETID \.
0180: 20 20 20 20 20 20 2d 2d 63 61 70 2d 64 72 6f 70 --cap-drop
0190: 20 4b 49 4c 4c 20 5c 0a 20 20 20 20 20 20 20 20 KILL \.
01a0: 2d 2d 63 61 70 2d 64 72 6f 70 20 4e 45 54 5f 42 --cap-drop NET_B
01b0: 49 4e 44 5f 53 45 52 56 49 43 45 20 5c 0a 20 20 IND_SERVICE \.
01c0: 20 20 20 20 20 20 2d 2d 63 61 70 2d 64 72 6f 70 --cap-drop
01d0: 20 4e 45 54 5f 52 41 57 20 5c 0a 20 20 20 20 20 NET_RAW \.
01e0: 20 20 20 2d 2d 63 61 70 2d 64 72 6f 70 20 53 45 --cap-drop SE
01f0: 54 46 43 41 50 20 5c 0a 20 20 20 20 20 20 20 20 TFCAP \.
0200: 2d 2d 63 61 70 2d 64 72 6f 70 20 53 45 54 50 43 --cap-drop SETPC
0210: 41 50 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 6c AP \. --l
0220: 61 62 65 6c 20 22 69 6f 2e 63 6f 6e 74 61 69 6e abel "io.contain
0230: 65 72 73 2e 61 75 74 6f 75 70 64 61 74 65 3d 72 ers.autoupdate=r
0240: 65 67 69 73 74 72 79 22 20 5c 0a 20 20 20 20 20 egistry" \.
0250: 20 20 20 2d 2d 70 75 62 6c 69 73 68 20 31 32 37 --publish 127
0260: 2e 30 2e 30 2e 31 3a 24 50 4f 52 54 3a 38 30 38 .0.0.1:$PORT:808
0270: 30 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 75 73 0 \. --us
0280: 65 72 20 30 20 5c 0a 20 20 20 20 20 20 20 20 2d er 0 \. -
0290: 2d 76 6f 6c 75 6d 65 20 7e 2f 6d 75 73 65 75 6d -volume ~/museum
02a0: 2f 24 62 6e 3a 2f 6d 75 73 65 75 6d 20 5c 0a 20 /$bn:/museum \.
02b0: 20 20 20 20 20 20 20 2d 2d 76 6f 6c 75 6d 65 20 --volume
02c0: 7e 2f 6c 6f 67 2f 66 6f 73 73 69 6c 3a 2f 6c 6f ~/log/fossil:/lo
02d0: 67 20 5c 0a 20 20 20 20 20 20 20 20 24 49 4d 41 g \. $IMA
02e0: 47 45 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 GE \.
02f0: 20 2d 2d 73 63 67 69 20 5c 0a 20 20 20 20 20 20 --scgi \.
0300: 20 20 20 20 20 20 2d 2d 6e 6f 6a 61 69 6c 20 5c --nojail \
0310: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d 6a . --j
0320: 73 6d 6f 64 65 20 62 75 6e 64 6c 65 64 20 5c 0a smode bundled \.
0330: 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d 62 61 --ba
0340: 73 65 75 72 6c 20 24 53 49 54 45 2f 24 62 6e 20 seurl $SITE/$bn
0350: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d \. --
0360: 65 72 72 6f 72 6c 6f 67 20 2f 6c 6f 67 2f 24 62 errorlog /log/$b
0370: 6e 2e 6c 6f 67 20 5c 0a 20 20 20 20 20 20 20 20 n.log \.
0380: 20 20 20 20 2f 6d 75 73 65 75 6d 2f 72 65 70 6f /museum/repo
0390: 2e 66 6f 73 73 69 6c 29 0a 20 20 20 20 73 66 69 .fossil). sfi
03a0: 6c 65 3d 7e 2f 2e 6c 6f 63 61 6c 2f 73 68 61 72 le=~/.local/shar
03b0: 65 2f 73 79 73 74 65 6d 64 2f 75 73 65 72 2f 24 e/systemd/user/$
03c0: 6e 61 6d 65 2e 73 65 72 76 69 63 65 0a 20 20 20 name.service.
03d0: 20 70 6f 64 6d 61 6e 20 67 65 6e 65 72 61 74 65 podman generate
03e0: 20 73 79 73 74 65 6d 64 20 2d 2d 6e 65 77 20 2d systemd --new -
03f0: 2d 6e 61 6d 65 20 24 6e 61 6d 65 20 3e 20 24 73 -name $name > $s
0400: 66 69 6c 65 0a 0a 20 20 20 20 69 66 20 5b 20 2d file.. if [ -
0410: 7a 20 22 24 46 49 52 53 54 22 20 5d 0a 20 20 20 z "$FIRST" ].
0420: 20 74 68 65 6e 0a 20 20 20 20 20 20 20 20 6f 76 then. ov
0430: 3d 24 28 66 6f 73 73 69 6c 20 76 65 72 73 69 6f =$(fossil versio
0440: 6e 29 0a 20 20 20 20 20 20 20 20 70 6f 64 6d 61 n). podma
0450: 6e 20 63 70 20 24 6e 61 6d 65 3a 2f 62 69 6e 2f n cp $name:/bin/
0460: 66 6f 73 73 69 6c 20 24 28 74 79 70 65 20 2d 70 fossil $(type -p
0470: 20 66 6f 73 73 69 6c 29 0a 20 20 20 20 20 20 20 fossil).
0480: 20 6e 76 3d 24 28 66 6f 73 73 69 6c 20 76 65 72 nv=$(fossil ver
0490: 73 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 65 63 sion). ec
04a0: 68 6f 20 2d 65 20 22 55 70 64 61 74 65 64 20 46 ho -e "Updated F
04b0: 6f 73 73 69 6c 3a 5c 6e 20 20 46 72 6f 6d 3a 20 ossil:\n From:
04c0: 24 6f 76 5c 6e 20 20 20 20 54 6f 3a 20 24 6e 76 $ov\n To: $nv
04d0: 22 0a 20 20 20 20 20 20 20 20 46 49 52 53 54 3d ". FIRST=
04e0: 30 0a 20 20 20 20 66 69 0a 0a 20 20 20 20 65 63 0. fi.. ec
04f0: 68 6f 20 43 72 65 61 74 65 64 20 24 6c 6e 20 46 ho Created $ln F
0500: 6f 73 73 69 6c 20 63 6f 6e 74 61 69 6e 65 72 2c ossil container,
0510: 20 70 6f 72 74 20 24 50 4f 52 54 2c 20 49 44 20 port $PORT, ID
0520: 24 7b 69 64 3a 30 3a 38 7d 2e 0a 0a 20 20 20 20 ${id:0:8}...
0530: 4e 41 4d 45 53 3d 22 24 4e 41 4d 45 53 20 24 6e NAMES="$NAMES $n
0540: 61 6d 65 22 0a 20 20 20 20 50 4f 52 54 3d 24 28 ame". PORT=$(
0550: 28 24 50 4f 52 54 20 2b 20 31 29 29 0a 7d 0a 0a ($PORT + 1)).}..
0560: 70 6f 64 6d 61 6e 20 69 6d 61 67 65 20 70 75 6c podman image pul
0570: 6c 20 24 49 4d 41 47 45 0a 0a 73 74 61 72 74 5f l $IMAGE..start_
0580: 6f 6e 65 20 66 69 72 73 74 20 20 22 46 69 72 73 one first "Firs
0590: 74 20 50 72 6f 6a 65 63 74 22 0a 73 74 61 72 74 t Project".start
05a0: 5f 6f 6e 65 20 73 65 63 6f 6e 64 20 22 53 65 63 _one second "Sec
05b0: 6f 6e 64 20 50 72 6f 6a 65 63 74 22 0a 73 74 61 ond Project".sta
05c0: 72 74 5f 6f 6e 65 20 74 68 69 72 64 20 20 22 54 rt_one third "T
05d0: 68 69 72 64 20 50 72 6f 6a 65 63 74 22 0a 0a 73 hird Project"..s
05e0: 65 74 20 2d 78 0a 73 79 73 74 65 6d 63 74 6c 20 et -x.systemctl
05f0: 2d 2d 75 73 65 72 20 64 61 65 6d 6f 6e 2d 72 65 --user daemon-re
0600: 6c 6f 61 64 0a 73 79 73 74 65 6d 63 74 6c 20 2d load.systemctl -
0610: 2d 75 73 65 72 20 65 6e 61 62 6c 65 20 20 24 4e -user enable $N
0620: 41 4d 45 53 0a 73 79 73 74 65 6d 63 74 6c 20 2d AMES.systemctl -
0630: 2d 75 73 65 72 20 72 65 73 74 61 72 74 20 24 4e -user restart $N
0640: 41 4d 45 53 0a AMES.