summaryrefslogtreecommitdiff
path: root/Biz/Bild/ShellHook.sh
blob: d4027557a9736d406bececd12410e369681c2b54 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function help() {
  echo ""
  echo "bizdev" | figlet | lolcat
  echo ""
  echo "   bild   compile code"
  echo "   ci     run all builds and tests"
  echo "   deps   manage dependencies with niv"
  echo "   ghci   start ghci with correct options"
  echo "   help   show this message"
  echo "   lint   auto-lint all changed files"
  echo "   pie    product improvement engine"
  echo "   push   send a namespace to the cloud"
  echo "   ship   lint, bild, and push one (or all) namespace(s)"
}

# color codes for use with printf
export RED='\033[0;31m'
export GRN='\033[0;32m'
export YEL='\033[0;33m'
export NC='\033[0m' # No Color

alias runghc="runghc --ghc-arg=-i$BIZ_ROOT"

alias guile="guile -L $BIZ_ROOT"

alias tree="tree -I _ -F"

# link git hooks
rm -f $BIZ_ROOT/.git/hooks/{post-checkout,post-merge,pre-commit}
ln -s $BIZ_ROOT/Biz/Ide/post-checkout $BIZ_ROOT/.git/hooks/post-checkout
ln -s $BIZ_ROOT/Biz/Ide/post-merge $BIZ_ROOT/.git/hooks/post-merge
ln -s $BIZ_ROOT/Biz/Ide/pre-commit $BIZ_ROOT/.git/hooks/pre-commit
ln -s $BIZ_ROOT/Biz/Ide/pre-push $BIZ_ROOT/.git/hooks/pre-push

function deps() {
  niv --sources-file $BIZ_ROOT/Biz/Bild/Sources.json $@
}

alias ghci="ghci -i$BIZ_ROOT -ghci-script $BIZ_ROOT/.ghci"

function pie() {
  runghc Biz.Pie $@
}

function run-sentry() {
  urls=(
    http://que.run
    https://dragons.dev
    https://simatime.com
    https://tv.simatime.com
    https://bsima.me
    # https://herocomics.app
  )
  for url in ${urls[@]}
  do
    code=$(curl -L --max-time 10 --silent --show-error --insecure \
      --output /dev/null \
      --write-out "%{http_code}" "$url")
    case "$code" in
      2[0-9][0-9]) printf "${GRN}$code  $url${NC}\n";;
      3[0-9][0-9]) printf "${YEL}$code  $url${NC}\n";;
      4[0-9][0-9]) printf "${YEL}$code  $url${NC}\n";;
      5[0-9][0-9]) printf "${RED}$code  $url${NC}\n";;
      *)           printf "${RED}$code  $url${NC}\n";;
    esac
  done
}

function sentry() {
  while true
  do
    clear
    printf "%s  sentry\n\n" "$(date +%Y.%m.%d..%H.%M)"
    run-sentry
    sleep 120
  done
}

# Poor man's ci
function run-ci() {
  lint **/* && bild --test **/*
}
alias ci="time run-ci"

export PS1='\n$(r=$? && [ $r -eq 0 ] && printf "biz" || printf "%3.*s" $r $r)> '

help