summaryrefslogtreecommitdiff
path: root/worker/scripts/fetch_code
blob: 7859fb1126df4820f79510b4d5e9b5795c9a55a1 (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
#!/bin/bash

export LOG_PREFIX="[fetch_code $remote @ $checkout -> $path]"

if [[ "$remote" == ssh://* ]]; then
  host=$(echo "$url" | sed -E 's#ssh://([^:]+):[0-9]+/.*#\1#')
  port=$(echo "$url" | sed -E 's#ssh://[^:]+:([0-9]+)/.*#\1#')

  log "populating host keyz~ $host:$port"
  ssh-keyscan -p "$port" "$host" > ./cur_known_hosts

  export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=./cur_known_hosts -o StrictHostKeyChecking=yes"
  log "GIT_SSH_COMMAND: $GIT_SSH_COMMAND"
fi

log "getting the codez~ time to fetch!"
git clone "$remote" "$path"
if [ ! $? -eq 0 ]; then
  log "D: oh nyo! couldn't clone the repo"
  exit 1
fi

cd "$path"
log "switching to $checkout~"
git reset --hard "$checkout"
if [ ! $? -eq 0 ]; then
  log "D: can't reset to $checkout"
  cd -
  exit 1
fi

cd -