Fossil Add-Ons

Hex Artifact Content
Login

Hex Artifact Content

Artifact 7303eb8a0e3e792596f2064b0a195fa75447bfbf8f4f80b19dc6c91b071b488c:


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.