Fossil

Hex Artifact Content
Login

Artifact b616e6dbbda6a621b023b159d24826292e77009a93553a31537159eed382e621:


0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 46 4f 53 53  #!/bin/bash.FOSS
0010: 49 4c 3d 66 6f 73 73 69 6c 0a 50 47 41 52 47 53  IL=fossil.PGARGS
0020: 3d 22 2d 50 20 31 22 0a 4f 4c 44 50 49 44 3d 60  ="-P 1".OLDPID=`
0030: 70 67 72 65 70 20 2d 50 20 31 20 66 6f 73 73 69  pgrep -P 1 fossi
0040: 6c 60 0a 53 49 54 45 3d 68 74 74 70 73 3a 2f 2f  l`.SITE=https://
0050: 65 78 61 6d 70 6c 65 2e 63 6f 6d 0a 50 4f 52 54  example.com.PORT
0060: 3d 31 32 33 34 35 0a 0a 69 66 20 5b 20 22 24 31  =12345..if [ "$1
0070: 22 20 3d 20 22 2d 66 22 20 5d 20 3b 20 74 68 65  " = "-f" ] ; the
0080: 6e 20 50 47 41 52 47 53 3d 20 3b 20 73 68 69 66  n PGARGS= ; shif
0090: 74 20 3b 20 66 69 0a 0a 69 66 20 5b 20 2d 6e 20  t ; fi..if [ -n 
00a0: 22 24 4f 4c 44 50 49 44 22 20 5d 0a 74 68 65 6e  "$OLDPID" ].then
00b0: 0a 20 20 20 20 65 63 68 6f 20 22 4b 69 6c 6c 69  .    echo "Killi
00c0: 6e 67 20 72 75 6e 6e 69 6e 67 20 46 6f 73 73 69  ng running Fossi
00d0: 6c 20 73 65 72 76 65 72 20 66 69 72 73 74 2e 2e  l server first..
00e0: 2e 22 0a 20 20 20 20 70 6b 69 6c 6c 20 24 50 47  .".    pkill $PG
00f0: 41 52 47 53 20 66 6f 73 73 69 6c 0a 0a 20 20 20  ARGS fossil..   
0100: 20 66 6f 72 20 69 20 69 6e 20 24 28 73 65 71 20   for i in $(seq 
0110: 33 30 29 0a 20 20 20 20 64 6f 0a 20 20 20 20 20  30).    do.     
0120: 20 20 20 69 66 20 5b 20 2d 6e 20 22 24 28 70 67     if [ -n "$(pg
0130: 72 65 70 20 24 50 47 41 52 47 53 20 66 6f 73 73  rep $PGARGS foss
0140: 69 6c 29 22 20 5d 0a 20 20 20 20 20 20 20 20 74  il)" ].        t
0150: 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20  hen.            
0160: 69 66 20 5b 20 24 69 20 2d 65 71 20 31 20 5d 0a  if [ $i -eq 1 ].
0170: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 6e              then
0180: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
0190: 20 65 63 68 6f 20 2d 6e 20 22 57 61 69 74 69 6e   echo -n "Waitin
01a0: 67 20 66 6f 72 20 69 74 20 74 6f 20 64 69 65 2e  g for it to die.
01b0: 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20  ..".            
01c0: 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20  else.           
01d0: 20 20 20 20 20 65 63 68 6f 20 2d 6e 20 2e 0a 20       echo -n .. 
01e0: 20 20 20 20 20 20 20 20 20 20 20 66 69 0a 20 20             fi.  
01f0: 20 20 20 20 20 20 20 20 20 20 73 6c 65 65 70 20            sleep 
0200: 27 30 2e 31 27 0a 20 20 20 20 20 20 20 20 65 6c  '0.1'.        el
0210: 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 62  se.            b
0220: 72 65 61 6b 0a 20 20 20 20 20 20 20 20 66 69 0a  reak.        fi.
0230: 20 20 20 20 20 20 20 20 65 63 68 6f 0a 20 20 20          echo.   
0240: 20 64 6f 6e 65 0a 0a 20 20 20 20 6b 69 6c 6c 61   done..    killa
0250: 6c 6c 20 2d 39 20 66 6f 73 73 69 6c 20 32 3e 20  ll -9 fossil 2> 
0260: 2f 64 65 76 2f 6e 75 6c 6c 0a 66 69 0a 0a 69 66  /dev/null.fi..if
0270: 20 5b 20 2d 78 20 2e 2f 66 6f 73 73 69 6c 20 5d   [ -x ./fossil ]
0280: 0a 74 68 65 6e 0a 20 20 20 20 23 20 57 65 27 72  .then.    # We'r
0290: 65 20 72 75 6e 6e 69 6e 67 20 66 72 6f 6d 20 61  e running from a
02a0: 20 62 75 69 6c 64 20 74 72 65 65 2c 20 73 6f 20   build tree, so 
02b0: 75 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e  use that version
02c0: 20 69 6e 73 74 65 61 64 0a 20 20 20 20 46 4f 53   instead.    FOS
02d0: 53 49 4c 3d 2e 2f 66 6f 73 73 69 6c 0a 66 69 0a  SIL=./fossil.fi.
02e0: 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 5f  .function start_
02f0: 6f 6e 65 28 29 20 7b 0a 20 20 20 20 62 6e 3d 24  one() {.    bn=$
0300: 31 0a 20 20 20 20 6c 6e 3d 22 24 32 22 0a 0a 20  1.    ln="$2".. 
0310: 20 20 20 24 46 4f 53 53 49 4c 20 73 65 72 76 65     $FOSSIL serve
0320: 72 20 24 65 78 74 72 61 20 5c 0a 20 20 20 20 20  r $extra \.     
0330: 20 20 20 2d 2d 73 63 67 69 20 5c 0a 20 20 20 20     --scgi \.    
0340: 20 20 20 20 2d 2d 6c 6f 63 61 6c 68 6f 73 74 20      --localhost 
0350: 5c 0a 20 20 20 20 20 20 20 20 2d 2d 70 6f 72 74  \.        --port
0360: 20 24 50 4f 52 54 20 5c 0a 20 20 20 20 20 20 20   $PORT \.       
0370: 20 2d 2d 6a 73 6d 6f 64 65 20 62 75 6e 64 6c 65   --jsmode bundle
0380: 64 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 62 61  d \.        --ba
0390: 73 65 75 72 6c 20 24 7b 53 49 54 45 7d 2f 24 62  seurl ${SITE}/$b
03a0: 6e 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 65 72  n \.        --er
03b0: 72 6f 72 6c 6f 67 20 7e 2f 6c 6f 67 2f 66 6f 73  rorlog ~/log/fos
03c0: 73 69 6c 2f 24 62 6e 2d 65 72 72 6f 72 73 2e 6c  sil/$bn-errors.l
03d0: 6f 67 20 5c 0a 20 20 20 20 20 20 20 20 7e 2f 6d  og \.        ~/m
03e0: 75 73 65 75 6d 2f 24 62 6e 2e 66 6f 73 73 69 6c  useum/$bn.fossil
03f0: 20 3e 20 7e 2f 6c 6f 67 2f 66 6f 73 73 69 6c 2f   > ~/log/fossil/
0400: 24 62 6e 2d 73 74 64 6f 75 74 2e 6c 6f 67 20 26  $bn-stdout.log &
0410: 0a 20 20 20 20 65 63 68 6f 20 53 74 61 72 74 65  .    echo Starte
0420: 64 20 24 6c 6e 20 46 6f 73 73 69 6c 20 73 65 72  d $ln Fossil ser
0430: 76 65 72 2c 20 70 6f 72 74 20 24 50 4f 52 54 2c  ver, port $PORT,
0440: 20 50 49 44 20 24 21 2e 0a 20 20 20 20 50 4f 52   PID $!..    POR
0450: 54 3d 24 28 28 24 50 4f 52 54 20 2b 20 31 29 29  T=$(($PORT + 1))
0460: 0a 7d 0a 0a 73 74 61 72 74 5f 6f 6e 65 20 66 69  .}..start_one fi
0470: 72 73 74 20 20 22 46 69 72 73 74 20 50 72 6f 6a  rst  "First Proj
0480: 65 63 74 22 0a 73 74 61 72 74 5f 6f 6e 65 20 73  ect".start_one s
0490: 65 63 6f 6e 64 20 22 53 65 63 6f 6e 64 20 50 72  econd "Second Pr
04a0: 6f 6a 65 63 74 22 0a 73 74 61 72 74 5f 6f 6e 65  oject".start_one
04b0: 20 74 68 69 72 64 20 20 22 54 68 69 72 64 20 50   third  "Third P
04c0: 72 6f 6a 65 63 74 22 0a                          roject".