devenv_build 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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.