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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e435646847200bc31def37e9b334080a8242d84
4
- data.tar.gz: 2ce1974ef1d5ba18d378bc4b4824e9167071d6c1
3
+ metadata.gz: 8d918c2a226ca1b85dfcd9052f0ac6a1b45004d3
4
+ data.tar.gz: 3cc04ffc3dbc74857d4cd3885426edcdd6960312
5
5
  SHA512:
6
- metadata.gz: 458b4835789415fd1ebd3ba4985f4e2c14113570bd7e31d15e03fc7bbe1003956c5be83afcf4365420b8ac28c771ec0a589ecade9c3a804264b35db5226a68d6
7
- data.tar.gz: 3dedaa4447341a90151a2b857689daef3320f1a26655b9726baca75da211cfe1762ab3f1af49c1d0893dfbe859d344d5037f9f2980f63b6fbb59d5336bd96a7a
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 trusty main restricted universe multiverse
30
- deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse
31
- deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse
32
- deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse
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 >/home/vagrant/.environment.sh <<\\EOF
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' >> /home/vagrant/.bash_profile
69
- touch /home/vagrant/.secret_keys.sh
70
- chown vagrant:vagrant /home/vagrant/.environment.sh
71
- chown vagrant:vagrant /home/vagrant/.secret_keys.sh
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 = "2"
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 = "ubuntu/trusty64"
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.ssh.forward_agent = true
49
+ config.vm.network "forwarded_port", guest: 7000, host: 7000
50
+ config.vm.network "forwarded_port", guest: 8000, host: 8000
24
51
 
25
- config.vm.synced_folder ".", "/vagrant", type: "nfs"
52
+ config.ssh.forward_agent = true
26
53
  config.vm.provision "shell", path: "provision/provision.sh"
27
54
 
28
- config.vm.provider "virtualbox" do |v|
29
- v.name = "#{box_name}"
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/ruby'
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/sbcl'
38
-
39
- require 'devenv_build/provisioning/ruby_on_rails'
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/nginx_passenger'
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 platform.'
5
+ 'Install the Haskell programming language and tools.'
6
6
  end
7
7
 
8
8
  def middle
9
- 'apt-get -y install haskell-platform'
9
+ 'curl -sSL https://get.haskellstack.org/ | sh'
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,13 @@
1
+ module DevenvBuild
2
+ module Provisioning
3
+ class Nginx < Base
4
+ def help
5
+ 'Install Nginx.'
6
+ end
7
+
8
+ def middle
9
+ "sudo apt-get -y install nginx"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -8,7 +8,7 @@ module DevenvBuild
8
8
  def before
9
9
  <<-BEFORE
10
10
  curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
11
- add-apt-repository https://deb.nodesource.com/node_5.x
11
+ add-apt-repository https://deb.nodesource.com/node_8.x
12
12
  BEFORE
13
13
  end
14
14
 
@@ -1,15 +1,15 @@
1
1
  module DevenvBuild
2
2
  module Provisioning
3
- class NginxPassenger < Base
3
+ class Passenger < Base
4
4
  def help
5
- 'Install Nginx + Phusion Passenger.'
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 trusty main" > /etc/apt/sources.list.d/passenger.list
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 \/home\/vagrant\/.rbenv\/shims\/ruby;\n/\' /etc/nginx/nginx.conf'
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-9.4 postgresql-contrib-9.4 postgresql-client-9.4 libpq-dev"
16
+ "apt-get -y install postgresql postgresql-contrib libpq-dev"
17
17
  end
18
18
 
19
19
  def after
20
20
  <<-AFTER
21
- sudo -u postgres pg_dropcluster --stop 9.4 main
22
- sudo -u postgres pg_createcluster --start 9.4 main
23
- sudo -u postgres createuser -d -R -w -S vagrant
24
- perl -i -p -e 's/local all all peer/local all all trust/' /etc/postgresql/9.4/main/pg_hba.conf
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 >/home/vagrant/temp-script.sh <<\\EOF
12
- export HOME=/home/vagrant
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 >> /home/vagrant/temp-script.sh
21
- chmod +x /home/vagrant/temp-script.sh
22
- su vagrant -c \"bash -c /home/vagrant/temp-script.sh\"
23
- rm /home/vagrant/temp-script.sh
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 >/home/vagrant/install_rbenv.sh <<\\EOF
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 /home/vagrant/install_rbenv.sh
38
- su vagrant -c \"bash -c /home/vagrant/install_rbenv.sh\"
39
- rm /home/vagrant/install_rbenv.sh
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.3.0 ; rbenv global 2.3.0\"
44
+ execute_with_rbenv \"rbenv install 2.4.2 ; rbenv global 2.4.2\"
45
45
  MIDDLE
46
46
  end
47
47
  end
@@ -15,8 +15,6 @@ module DevenvBuild
15
15
 
16
16
  def middle
17
17
  <<-MIDDLE
18
- sudo apt-get -y install nodejs
19
-
20
18
  execute_with_rbenv \"gem install rails\"
21
19
  MIDDLE
22
20
  end
@@ -1,3 +1,3 @@
1
1
  module DevenvBuild
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.0"
3
3
  end
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.2
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: 2016-01-03 00:00:00.000000000 Z
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/nginx_passenger.rb
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.5.1
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.