summaryrefslogtreecommitdiff
path: root/vere/docker/start_urbit.sh
blob: 809f2f12a5ab81f332ebeb76a0b290ac59543a11 (plain)
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
#!/bin/bash

set -eu

# set defaults
amesPort="34343"
httpPort="80"
loom="31"
snap="2"

# check args
for i in "$@"
do
case $i in
  -p=*|--port=*)
      amesPort="${i#*=}"
      shift
      ;;
  --http-port=*)
      httpPort="${i#*=}"
      shift
      ;;
  --loom=*)
      loom="${i#*=}"
      shift
      ;;
  --snap-time=*)
      snap="${i#*=}"
      shift
      ;;
esac
done

# If the container is not started with the `-i` flag
# then STDIN will be closed and we need to start
# Urbit/vere with the `-t` flag.
ttyflag=""
if [ ! -t 0 ]; then
  echo "Running with no STDIN"
  ttyflag="-t"
fi

# Check if there is a keyfile, if so boot a ship with its name, and then remove the key
if [ -e *.key ]; then
  # Get the name of the key
  keynames="*.key"
  keys=( $keynames )
  keyname=''${keys[0]}
  mv $keyname /tmp

  # Boot urbit with the key, exit when done booting
  urbit $ttyflag -w $(basename $keyname .key) -k /tmp/$keyname -c $(basename $keyname .key) -p $amesPort -x --http-port $httpPort --loom $loom --snap-time $snap

  # Remove the keyfile for security
  rm /tmp/$keyname
  rm *.key || true
elif [ -e *.comet ]; then
  cometnames="*.comet"
  comets=( $cometnames )
  cometname=''${comets[0]}
  rm *.comet

  urbit $ttyflag -c $(basename $cometname .comet) -p $amesPort -x --http-port $httpPort --loom $loom --snap-time $snap
fi

# Find the first directory and start urbit with the ship therein
dirnames="*/"
dirs=( $dirnames )
dirname=''${dirnames[0]}

exec urbit $ttyflag -p $amesPort --http-port $httpPort --loom $loom $dirname --snap-time $snap