devenv_build 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/devenv_build/files/provision.rb +12 -9
- data/lib/devenv_build/files/vagrantfile.rb +33 -10
- data/lib/devenv_build/provisioning.rb +8 -9
- data/lib/devenv_build/provisioning/clojure.rb +31 -0
- data/lib/devenv_build/provisioning/haskell.rb +2 -2
- data/lib/devenv_build/provisioning/nginx.rb +13 -0
- data/lib/devenv_build/provisioning/nodejs.rb +1 -1
- data/lib/devenv_build/provisioning/{nginx_passenger.rb → passenger.rb} +4 -4
- data/lib/devenv_build/provisioning/postgresql.rb +7 -5
- data/lib/devenv_build/provisioning/ruby.rb +11 -11
- data/lib/devenv_build/provisioning/ruby_on_rails.rb +0 -2
- data/lib/devenv_build/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d918c2a226ca1b85dfcd9052f0ac6a1b45004d3
|
4
|
+
data.tar.gz: 3cc04ffc3dbc74857d4cd3885426edcdd6960312
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a4b02dc50129cc74d7a23b95c5b6126983e811d4477dd2e37d813fa3ac5787587968a544b9f91ae1295197c0860a3bf7fa08b00c5eee93dfaac7f01da2dd0abf
|
7
|
+
data.tar.gz: c4cc90425f62d1b92307586f5afafd5d55bd1564ce5cbba6751ca807548d239241efd3e08af65b213e534294c059b7807013221a6cb9a12eaa3817238023e8a5
|
@@ -26,13 +26,16 @@ echo "Setting up locales..."
|
|
26
26
|
|
27
27
|
echo "Setting up APT mirrors..."
|
28
28
|
`cat >/etc/apt/sources.list <<\\EOF
|
29
|
-
deb mirror://mirrors.ubuntu.com/mirrors.txt
|
30
|
-
deb mirror://mirrors.ubuntu.com/mirrors.txt
|
31
|
-
deb mirror://mirrors.ubuntu.com/mirrors.txt
|
32
|
-
deb mirror://mirrors.ubuntu.com/mirrors.txt
|
29
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted universe multiverse
|
30
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse
|
31
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-backports main restricted universe multiverse
|
32
|
+
deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-security main restricted universe multiverse
|
33
33
|
EOF
|
34
34
|
`
|
35
35
|
|
36
|
+
USER=`tail -n 1 /etc/passwd | sed s/:.*//g`
|
37
|
+
HOME="/home/$USER"
|
38
|
+
|
36
39
|
export DEBIAN_FRONTEND=noninteractive
|
37
40
|
|
38
41
|
apt-get -y update
|
@@ -60,15 +63,15 @@ hostname devenv
|
|
60
63
|
|
61
64
|
# Setup environment
|
62
65
|
echo "Setup environment..."
|
63
|
-
`cat
|
66
|
+
`cat >$HOME/.environment.sh <<\\EOF
|
64
67
|
# Environment variables
|
65
68
|
export PS1="[\\[\\033[1;34m\\]\\u\\[\\033[0m\\]@\\h:\\[\\033[1;37m\\]\\w\\[\\033[0m\\]]$ "
|
66
69
|
EOF
|
67
70
|
`
|
68
|
-
echo 'source ~/.environment.sh' >>
|
69
|
-
touch
|
70
|
-
chown
|
71
|
-
chown
|
71
|
+
echo 'source ~/.environment.sh' >> $HOME/.bash_profile
|
72
|
+
touch $HOME/.secret_keys.sh
|
73
|
+
chown $USER:$USER $HOME/.environment.sh
|
74
|
+
chown $USER:$USER $HOME/.secret_keys.sh
|
72
75
|
|
73
76
|
## AFTER ##############################################################################################
|
74
77
|
#{after}
|
@@ -13,24 +13,47 @@ module DevenvBuild
|
|
13
13
|
# vi: set ft=ruby :
|
14
14
|
|
15
15
|
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
16
|
-
VAGRANTFILE_API_VERSION =
|
16
|
+
VAGRANTFILE_API_VERSION = '2'
|
17
|
+
|
18
|
+
VAGRANT_BOX_NAME = '#{box_name}'
|
19
|
+
|
20
|
+
VAGRANT_PROVIDER = :virtualbox
|
21
|
+
|
22
|
+
PROVIDERS = {
|
23
|
+
virtualbox: {
|
24
|
+
box: 'ubuntu/xenial64',
|
25
|
+
shared_folder: [ '.', '/vagrant', type: 'nfs' ],
|
26
|
+
configuration: proc do |v|
|
27
|
+
v.name = VAGRANT_BOX_NAME
|
28
|
+
v.memory = 1024
|
29
|
+
v.customize ['modifyvm', :id, '--natdnshostresolver1', 'on']
|
30
|
+
v.customize ['modifyvm', :id, '--natdnsproxy1', 'on']
|
31
|
+
end
|
32
|
+
},
|
33
|
+
parallels: {
|
34
|
+
box: 'parallels/ubuntu-16.04',
|
35
|
+
shared_folder: [ '.', '/vagrant'],
|
36
|
+
configuration: proc do |v|
|
37
|
+
v.name = VAGRANT_BOX_NAME
|
38
|
+
v.memory = 1024
|
39
|
+
v.update_guest_tools = true
|
40
|
+
end
|
41
|
+
}
|
42
|
+
}
|
17
43
|
|
18
44
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
19
|
-
config.vm.box =
|
45
|
+
config.vm.box = PROVIDERS[VAGRANT_PROVIDER][:box]
|
20
46
|
|
21
47
|
config.vm.network "private_network", ip: "192.168.50.4"
|
22
48
|
config.vm.network "forwarded_port", guest: 3000, host: 3000
|
23
|
-
config.
|
49
|
+
config.vm.network "forwarded_port", guest: 7000, host: 7000
|
50
|
+
config.vm.network "forwarded_port", guest: 8000, host: 8000
|
24
51
|
|
25
|
-
config.
|
52
|
+
config.ssh.forward_agent = true
|
26
53
|
config.vm.provision "shell", path: "provision/provision.sh"
|
27
54
|
|
28
|
-
config.vm.
|
29
|
-
|
30
|
-
v.memory = 1024
|
31
|
-
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
|
32
|
-
v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
|
33
|
-
end
|
55
|
+
config.vm.synced_folder(*PROVIDERS[VAGRANT_PROVIDER][:shared_folder])
|
56
|
+
config.vm.provider VAGRANT_PROVIDER, &PROVIDERS[VAGRANT_PROVIDER][:configuration]
|
34
57
|
end
|
35
58
|
EOF
|
36
59
|
end
|
@@ -30,15 +30,14 @@ module DevenvBuild
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
require 'devenv_build/provisioning/
|
34
|
-
require 'devenv_build/provisioning/nodejs'
|
35
|
-
require 'devenv_build/provisioning/rustlang'
|
33
|
+
require 'devenv_build/provisioning/clojure'
|
36
34
|
require 'devenv_build/provisioning/haskell'
|
37
|
-
require 'devenv_build/provisioning/
|
38
|
-
|
39
|
-
require 'devenv_build/provisioning/
|
40
|
-
|
35
|
+
require 'devenv_build/provisioning/nginx'
|
36
|
+
require 'devenv_build/provisioning/nodejs'
|
37
|
+
require 'devenv_build/provisioning/passenger'
|
41
38
|
require 'devenv_build/provisioning/postgresql'
|
42
39
|
require 'devenv_build/provisioning/redis'
|
43
|
-
|
44
|
-
require 'devenv_build/provisioning/
|
40
|
+
require 'devenv_build/provisioning/ruby'
|
41
|
+
require 'devenv_build/provisioning/ruby_on_rails'
|
42
|
+
require 'devenv_build/provisioning/rustlang'
|
43
|
+
require 'devenv_build/provisioning/sbcl'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module DevenvBuild
|
2
|
+
module Provisioning
|
3
|
+
class Clojure < Base
|
4
|
+
def help
|
5
|
+
'Install Clojure (with Leiningen).'
|
6
|
+
end
|
7
|
+
|
8
|
+
def before
|
9
|
+
<<-BEFORE
|
10
|
+
apt-get -y install default-jre default-jdk
|
11
|
+
|
12
|
+
mkdir -p $HOME/bin
|
13
|
+
chown $USER:$USER $HOME/bin
|
14
|
+
BEFORE
|
15
|
+
end
|
16
|
+
|
17
|
+
def middle
|
18
|
+
<<-BEFORE
|
19
|
+
# Leiningen
|
20
|
+
wget -q -O $HOME/bin/lein https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
|
21
|
+
chmod a+x $HOME/bin/lein
|
22
|
+
chown $USER:$USER $HOME/bin/lein
|
23
|
+
BEFORE
|
24
|
+
end
|
25
|
+
|
26
|
+
def after
|
27
|
+
"echo 'export PATH=\"$PATH:~/bin\"' >> $HOME/.bash_profile"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -2,11 +2,11 @@ module DevenvBuild
|
|
2
2
|
module Provisioning
|
3
3
|
class Haskell < Base
|
4
4
|
def help
|
5
|
-
'Install the Haskell programming language
|
5
|
+
'Install the Haskell programming language and tools.'
|
6
6
|
end
|
7
7
|
|
8
8
|
def middle
|
9
|
-
'
|
9
|
+
'curl -sSL https://get.haskellstack.org/ | sh'
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module DevenvBuild
|
2
2
|
module Provisioning
|
3
|
-
class
|
3
|
+
class Passenger < Base
|
4
4
|
def help
|
5
|
-
'Install
|
5
|
+
'Install Phusion Passenger + Passenger.'
|
6
6
|
end
|
7
7
|
|
8
8
|
def before
|
9
9
|
<<-BEFORE
|
10
10
|
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
|
11
11
|
apt-get install -y apt-transport-https ca-certificates
|
12
|
-
echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger
|
12
|
+
echo "deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main" > /etc/apt/sources.list.d/passenger.list
|
13
13
|
BEFORE
|
14
14
|
end
|
15
15
|
|
@@ -18,7 +18,7 @@ BEFORE
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def after
|
21
|
-
'perl -i -p -e \'s/# passenger_root \/usr\/lib\/ruby\/vendor_ruby\/phusion_passenger\/locations\.ini\;\n/passenger_root \/usr\/lib\/ruby\/vendor_ruby\/phusion_passenger\/locations.ini;\n\tpassenger_ruby
|
21
|
+
'perl -i -p -e \'s/# passenger_root \/usr\/lib\/ruby\/vendor_ruby\/phusion_passenger\/locations\.ini\;\n/passenger_root \/usr\/lib\/ruby\/vendor_ruby\/phusion_passenger\/locations.ini;\n\tpassenger_ruby ~\/.rbenv\/shims\/ruby;\n/\' /etc/nginx/nginx.conf'
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -13,15 +13,17 @@ BEFORE
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def middle
|
16
|
-
"apt-get -y install postgresql
|
16
|
+
"apt-get -y install postgresql postgresql-contrib libpq-dev"
|
17
17
|
end
|
18
18
|
|
19
19
|
def after
|
20
20
|
<<-AFTER
|
21
|
-
|
22
|
-
|
23
|
-
sudo -u postgres
|
24
|
-
|
21
|
+
PG_VERSION=`pg_lsclusters | tail -n 1 | awk '{ print $1 }'`
|
22
|
+
|
23
|
+
sudo -u postgres pg_dropcluster --stop $PG_VERSION main
|
24
|
+
sudo -u postgres pg_createcluster --start $PG_VERSION main
|
25
|
+
sudo -u postgres createuser -d -R -w -S $USER
|
26
|
+
perl -i -p -e 's/local all all peer/local all all trust/' /etc/postgresql/$PG_VERSION/main/pg_hba.conf
|
25
27
|
AFTER
|
26
28
|
end
|
27
29
|
end
|
@@ -8,8 +8,8 @@ module DevenvBuild
|
|
8
8
|
def before
|
9
9
|
<<-BEFORE
|
10
10
|
execute_with_rbenv () {
|
11
|
-
`cat
|
12
|
-
export HOME
|
11
|
+
`cat >$HOME/temp-script.sh <<\\EOF
|
12
|
+
export HOME=$HOME
|
13
13
|
if [ -d $HOME/.rbenv ]; then
|
14
14
|
export PATH=\"$HOME/.rbenv/bin:$PATH\"
|
15
15
|
eval \"$(rbenv init -)\"
|
@@ -17,31 +17,31 @@ fi
|
|
17
17
|
|
18
18
|
EOF
|
19
19
|
`
|
20
|
-
echo $1 >> /
|
21
|
-
chmod +x /
|
22
|
-
su
|
23
|
-
rm /
|
20
|
+
echo $1 >> $HOME/temp-script.sh
|
21
|
+
chmod +x $HOME/temp-script.sh
|
22
|
+
su $USER -c \"bash -c $HOME/temp-script.sh\"
|
23
|
+
rm $HOME/temp-script.sh
|
24
24
|
}
|
25
25
|
BEFORE
|
26
26
|
end
|
27
27
|
|
28
28
|
def middle
|
29
29
|
<<-MIDDLE
|
30
|
-
`cat
|
30
|
+
`cat >$HOME/install_rbenv.sh <<\\EOF
|
31
31
|
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
|
32
32
|
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
|
33
33
|
echo 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' >> ~/.bash_profile
|
34
34
|
echo 'eval \"$(rbenv init -)\"' >> ~/.bash_profile
|
35
35
|
EOF
|
36
36
|
`
|
37
|
-
chmod +x /
|
38
|
-
su
|
39
|
-
rm /
|
37
|
+
chmod +x $HOME/install_rbenv.sh
|
38
|
+
su $USER -c \"bash -c $HOME/install_rbenv.sh\"
|
39
|
+
rm $HOME/install_rbenv.sh
|
40
40
|
|
41
41
|
sudo apt-get -y install zlib1g-dev libssl-dev libreadline-dev libyaml-dev libsqlite3-dev \\
|
42
42
|
sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev libffi-dev
|
43
43
|
|
44
|
-
execute_with_rbenv \"rbenv install 2.
|
44
|
+
execute_with_rbenv \"rbenv install 2.4.2 ; rbenv global 2.4.2\"
|
45
45
|
MIDDLE
|
46
46
|
end
|
47
47
|
end
|
data/lib/devenv_build/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devenv_build
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francisco Soto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -67,9 +67,11 @@ files:
|
|
67
67
|
- lib/devenv_build/files/provision.rb
|
68
68
|
- lib/devenv_build/files/vagrantfile.rb
|
69
69
|
- lib/devenv_build/provisioning.rb
|
70
|
+
- lib/devenv_build/provisioning/clojure.rb
|
70
71
|
- lib/devenv_build/provisioning/haskell.rb
|
71
|
-
- lib/devenv_build/provisioning/
|
72
|
+
- lib/devenv_build/provisioning/nginx.rb
|
72
73
|
- lib/devenv_build/provisioning/nodejs.rb
|
74
|
+
- lib/devenv_build/provisioning/passenger.rb
|
73
75
|
- lib/devenv_build/provisioning/postgresql.rb
|
74
76
|
- lib/devenv_build/provisioning/redis.rb
|
75
77
|
- lib/devenv_build/provisioning/ruby.rb
|
@@ -97,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
99
|
version: '0'
|
98
100
|
requirements: []
|
99
101
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
102
|
+
rubygems_version: 2.6.13
|
101
103
|
signing_key:
|
102
104
|
specification_version: 4
|
103
105
|
summary: Development environment builder based on Vagrant and VirtualBox.
|