File: debci-setup

package info (click to toggle)
debci 3.13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,656 kB
  • sloc: ruby: 6,516; sh: 2,437; javascript: 100; makefile: 92; perl: 11
file content (77 lines) | stat: -rwxr-xr-x 1,806 bytes parent folder | download | duplicates (2)
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
72
73
74
75
76
77
#!/bin/sh

set -eu

usage() {
  cat <<EOF
usage: debci-setup [OPTIONS]

Options:
  -f, --force               Force update, even if the testbed has already been
                            updated recently.
$@
EOF
}

short_options='f'
long_options='force'

export debci_base_dir=$(readlink -f $(dirname $(readlink -f $0))/..)
. $debci_base_dir/lib/environment.sh
. $debci_base_dir/lib/functions.sh

force=
while true; do
  arg="$1"
  shift
  case "$arg" in
    -f|--force)
      force="$arg"
      ;;
    --)
      break
      ;;
  esac
done


if [ -n "$force" ]; then
  rm -f "$debci_testbed_timestamp"
fi

if [ -e "$debci_testbed_timestamp" ]; then
  last_update=$(stat --format=%Y "$debci_testbed_timestamp")
  now=$(date +%s)
  if [ $(($now - $last_update)) -le 43200 ]; then # 12h
    log "I: testbed setup [${debci_suite}/${debci_arch}/${debci_backend}]: skip (already updated in the last 12h)"
    exit
  fi
fi

log "I: testbed setup [${debci_suite}/${debci_arch}/${debci_backend}]: starting at $(date)"

mkdir -p "$debci_log_dir"
log="$debci_log_dir/debci-setup.$(date +%d).log"
touch "$log"
user_group=$(stat -c %U:%G "${debci_log_dir}")
chown $user_group "$log"
ln -sf "$(basename "$log")" "$debci_log_dir/debci-setup.log"
chown $user_group "$debci_log_dir/debci-setup.log"
find "$debci_log_dir" -mtime +20 -and -name '*.log' -delete

(
  msg="debci-setup started on $(LANG=C date)"
  echo "$msg"
  echo "$msg" | sed -s 's/./-/g'
) >> $log 2>&1

if [ "$debci_quiet" = false ]; then
  maybe_with_proxy mispipe "create-testbed --suite '$debci_suite' 2>&1" "tee --append $log"
else
  maybe_with_proxy create-testbed --suite "$debci_suite" >>$log 2>&1
fi

# record timestamp
touch "$debci_testbed_timestamp"

log "I: testbed setup [${debci_suite}/${debci_arch}/${debci_backend}]: finished at $(date)"