aboutsummaryrefslogtreecommitdiffstats
path: root/provision_openbsd.ksh
blob: 1b1cd5dc91fe08789c589f1a97d34d969be38d07 (plain) (blame)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/bin/ksh

# download ISO from https://cdn.openbsd.org/pub/OpenBSD/$(uname -r)/amd64/install71.iso

INC_CODE=0


usage()
{
  print "Usage: $0 [-c]"
  print -R '-c - require repositories to be downloaded from github'
  exit 2
}

while getopts 'ch' opt
do
  case $opt in
    c) INC_CODE=1; print "Will fetch code from github." ;;
    h) usage ;; 
    ?) usage ;; 
  esac
done

dbasik_src=~/code/python/dbasik
datamaps_src=~/code/python/datamaps
bcompiler_src=~/code/python/bcompiler-engine

command -v vim > /dev/null 2>&1
if [ "$?" != 0 ]; then
  doas pkg_add vim
fi

create_venvs() {
    cd $1
    print "\nCreating the virtualenv at $1/.venv. This might take a couple of minutes..."
    print -n "Creating virtualenv..."
    python3 -m venv .venv
    . ./.venv/bin/activate
    print "ok"
    if [ -a requirements.txt ]; then
      print -n "Installing from requirements.txt..."
      pip install -r requirements.txt > /dev/null 2>&1
      pip install -U pip > /dev/null 2>&1
      print "ok"
    fi
    if [ -a requirements_dev.txt ]; then
      print -n "Installing from requirements_dev.txt..."
      pip install -r requirements_dev.txt > /dev/null 2>&1
      pip install -U pip > /dev/null 2>&1
      print "ok"
    fi
    deactivate && cd ~
    print "virtualenv created"
}

doas pkg_add fzf the_silver_searcher zip 

if [ $INC_CODE -eq 1 ]; then
  ssh-add -v
  print -n "Creating necessary directories..."
  mkdir -p ~/code/python
  mkdir -p ~/.config/
  mkdir -p ~/.fzf/
  print "ok"

  print -n "Fetching dotfiles..."
  if [ ! -d ~/openbsddotfiles ]; then
    git clone git@github.com:yulqen/openbsddotfiles.git ~/openbsddotfiles > /dev/null 2>&1
    print "ok"
  else
    print "dotfiles directory already exists."
  fi

  print -n "Fetching dbasik..."
  if [ ! -d $dbasik_src ]; then
    git clone git@github.com:yulqen/dbasik.git $dbasik_src > /dev/null 2>&1
    print "ok"
    create_venvs $dbasik_src
  else
    print "dbasik directory already exists."
  fi

  print -n "Fetching datamaps..."
  if [ ! -d $datamaps_src ]; then
    git clone git@github.com:yulqen/datamaps.git $datamaps_src > /dev/null 2>&1
    print "ok"
    create_venvs $datamaps_src
  else
    print "datamaps directory already exists."
  fi

  print -n "Fetching bcompiler-engine..."
  if [ ! -d $bcompiler_src ]; then
    git clone git@github.com:yulqen/bcompiler-engine.git $bcompiler_src > /dev/null 2>&1
    create_venvs $bcompiler_src
    print "ok"
  else
    print "bcompiler-engine directory already exists."
  fi

  print -n "Creating code-related symlinks..."
  ln -sf openbsddotfiles/pdbrc .pdbrc
  ln -sf openbsddotfiles/pdbrc.py .pdbrc.py
  ln -sf openbsddotfiles/flake8 /home/lemon/.config/.flake8
  ln -sf $(which fzf) ~/.fzf
  print "ok"
fi


print -n "Creating regular symlinks..."
cd ~
ln -sf openbsddotfiles/kshrc_vm_provision .kshrc
ln -sf openbsddotfiles/ksh_aliases .ksh_aliases
ln -sf openbsddotfiles/profile_vm_provisioning .profile
ln -sf openbsddotfiles/tmux.conf .tmux.conf
ln -shf openbsddotfiles/vim ~/.vim
ln -sf openbsddotfiles/gitconfig .gitconfig
ln -sf openbsddotfiles/gitignore_global .gitignore_global
print "ok"