summaryrefslogtreecommitdiffstats
path: root/Vagrantfile
blob: 297e70ae2adf08df54ffd941225c88686c630622 (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
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# -*- mode: ruby -*-
# vi: set ft=ruby :
# 
#

Vagrant.configure(2) do |config|

  config.vm.synced_folder ".", "/pgcli"

  pgcli_version = ENV['version']
  pgcli_description = "Postgres CLI with autocompletion and syntax highlighting"

  config.vm.define "debian" do |debian|
    debian.vm.box = "bento/debian-10.8"
    debian.vm.provision "shell", inline: <<-SHELL
    echo "-> Building DEB on `lsb_release -d`"
    sudo apt-get update
    sudo apt-get install -y libpq-dev python-dev python-setuptools rubygems
    sudo apt install -y python3-pip
    sudo pip3 install --no-cache-dir virtualenv virtualenv-tools3
    sudo apt-get install -y ruby-dev
    sudo apt-get install -y git
    sudo apt-get install -y rpm librpmbuild8

    sudo gem install fpm

    echo "-> Cleaning up old workspace"
    sudo rm -rf build
    mkdir -p build/usr/share
    virtualenv build/usr/share/pgcli
    build/usr/share/pgcli/bin/pip install /pgcli

    echo "-> Cleaning Virtualenv"
    cd build/usr/share/pgcli
    virtualenv-tools --update-path /usr/share/pgcli > /dev/null
    cd /home/vagrant/

    echo "-> Removing compiled files"
    find build -iname '*.pyc' -delete
    find build -iname '*.pyo' -delete

    echo "-> Creating PgCLI deb"
    sudo fpm -t deb -s dir -C build -n pgcli -v #{pgcli_version} \
        -a all \
        -d libpq-dev \
        -d python-dev \
        -p /pgcli/ \
        --after-install /pgcli/post-install \
        --after-remove /pgcli/post-remove \
        --url https://github.com/dbcli/pgcli \
        --description "#{pgcli_description}" \
        --license 'BSD'

    SHELL
  end

  
# This is considerably more messy than the debian section.  I had to go off-standard to update
# some packages to get this to work.

  config.vm.define "centos" do |centos|

    centos.vm.box = "bento/centos-7.9"
    centos.vm.box_version = "202012.21.0"
    centos.vm.provision "shell", inline: <<-SHELL
    #!/bin/bash
    echo "-> Building RPM on `hostnamectl | grep "Operating System"`"
    export PATH=/usr/local/rvm/gems/ruby-2.6.3/bin:/usr/local/rvm/gems/ruby-2.6.3@global/bin:/usr/local/rvm/rubies/ruby-2.6.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/bin:/root/bin
    echo "PATH -> " $PATH

#####
### get base updates

    sudo yum install -y rpm-build gcc postgresql-devel python-devel  python3-pip git python3-devel

######
### install FPM, which we need to install to get an up-to-date version of ruby, which we need for git

    echo "-> Get FPM installed"
    # import the necessary GPG keys
    gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    sudo gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
    # install RVM
    sudo curl -sSL https://get.rvm.io | sudo bash -s stable
    sudo usermod -aG rvm vagrant
    sudo usermod -aG rvm root
    sudo /usr/local/rvm/bin/rvm alias create default 2.6.3
    source /etc/profile.d/rvm.sh
    
    # install a newer version of ruby.  centos7 only comes with ruby2.0.0, which isn't good enough for git.
    sudo yum install -y ruby-devel
    sudo /usr/local/rvm/bin/rvm install 2.6.3
    
    #
    # yes,this gives an error about generating doc but we don't need the doc. 

    /usr/local/rvm/gems/ruby-2.6.3/wrappers/gem install fpm

######

    sudo pip3 install virtualenv virtualenv-tools3
    echo "-> Cleaning up old workspace"
    rm -rf build
    mkdir -p build/usr/share
    virtualenv build/usr/share/pgcli
    build/usr/share/pgcli/bin/pip install /pgcli

    echo "-> Cleaning Virtualenv"
    cd build/usr/share/pgcli
    virtualenv-tools --update-path /usr/share/pgcli > /dev/null
    cd /home/vagrant/

    echo "-> Removing compiled files"
    find build -iname '*.pyc' -delete
    find build -iname '*.pyo' -delete

    cd /home/vagrant
    echo "-> Creating PgCLI RPM"
    /usr/local/rvm/gems/ruby-2.6.3/gems/fpm-1.12.0/bin/fpm -t rpm -s dir -C build -n pgcli -v #{pgcli_version} \
        -a all \
        -d postgresql-devel \
        -d python-devel \
        -p /pgcli/ \
        --after-install /pgcli/post-install \
        --after-remove /pgcli/post-remove \
        --url https://github.com/dbcli/pgcli \
        --description "#{pgcli_description}" \
        --license 'BSD'


  SHELL


  end


end