Commit 91ad21d

mo khan <mo@mokhan.ca>
2015-11-15 18:45:29
refine startup and phantomjs installation.
1 parent 1cb31ee
app/assets/javascripts/models/startup.js.coffee
@@ -0,0 +1,7 @@
+class Stronglifters.Startup
+  start: ->
+    $(document).on 'page:fetch', ->
+      $(".loading-indicator").show()
+    $(document).on 'page:change', ->
+      $(".loading-indicator").hide()
+    $(document).foundation()
app/assets/javascripts/application.js
@@ -19,10 +19,7 @@
 //= require_tree .
 //= require turbolinks
 
-$(document).on('page:fetch', function() {
-  $(".loading-indicator").show();
-});
-$(document).on('page:change', function() {
-  $(".loading-indicator").hide();
-});
 var Stronglifters = Stronglifters || {};
+$(function(){
+  new Stronglifters.Startup().start();
+});
app/views/layouts/application.html.erb
@@ -10,10 +10,6 @@
     <%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>
     <%= javascript_include_tag "//apis.google.com/js/api.js" %>
     <%= javascript_include_tag "//apis.google.com/js/client.js" %>
-    <script type="text/javascript" charset="utf-8">
-      $(function(){
-        $(document).foundation();
-      });
     </script>
     <%= csrf_meta_tags %>
   </head>
app/views/layouts/public.html.erb
@@ -8,9 +8,6 @@
     <%= javascript_include_tag "vendor/modernizr" %>
     <%= javascript_include_tag "application" %>
     <%= javascript_include_tag "//www.google.com/jsapi", "chartkick" %>
-    <script type="text/javascript" charset="utf-8">
-      $(function(){ $(document).foundation(); });
-    </script>
     <%= csrf_meta_tags %>
   </head>
   <body class="<%= controller_name %> <%= action_name %>">
config/chef_apply.rb
@@ -1,25 +1,33 @@
-execute "apt-get_update" do
-  command "apt-get update -y"
-end
-
-execute "apt-get_upgrade" do
-  command "apt-get upgrade -y"
-end
+execute "apt-get update -y"
+execute "apt-get upgrade -y"
 
 packages = %w{
+  bison
   build-essential
   curl
   exuberant-ctags
+  flex
+  g++
   git-core
+  gperf
   libcurl4-openssl-dev
   libffi-dev
+  libfontconfig1-dev
+  libfreetype6
+  libicu-dev
+  libjpeg-dev
+  libpng-dev
   libreadline-dev
   libsqlite3-dev
   libssl-dev
+  libx11-dev
+  libxext-dev
   libxml2-dev
   libxslt1-dev
   libyaml-dev
   memcached
+  perl
+  python
   python-software-properties
   redis-server
   software-properties-common
@@ -28,9 +36,7 @@ packages = %w{
   zlib1g-dev
 }
 
-package packages do
-  action :install
-end
+package packages
 
 phantomjs = "phantomjs-1.9.8-linux-x86_64"
 remote_file "/tmp/#{phantomjs}.tar.bz2" do
@@ -39,7 +45,6 @@ remote_file "/tmp/#{phantomjs}.tar.bz2" do
 end
 
 bash "install_phantomjs" do
-  user "root"
   cwd "/tmp"
   not_if { ::Dir.exist?("/usr/local/share/#{phantomjs}") }
   code <<-SCRIPT
@@ -65,85 +70,61 @@ bash "install postgres" do
   SCRIPT
 end
 
-execute "install_node" do
-  command "curl -sL https://deb.nodesource.com/setup | bash -"
-end
+execute "curl -sL https://deb.nodesource.com/setup | bash -"
+package "nodejs"
 
-package ["nodejs"] do
-  action :install
-end
-
-bash "create_postgres_user" do
+execute "psql postgres -tAc \"SELECT 1 FROM pg_roles WHERE rolname='vagrant'\" | grep -q 1 || createuser -s -e -w vagrant" do
   user "postgres"
-  code <<-SCRIPT
-    psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='vagrant'" | grep -q 1 || createuser -s -e -w vagrant
-  SCRIPT
 end
 
-bash "create_vagrant_db" do
+execute "createdb" do
   user "vagrant"
   not_if { "psql postgres -tAc \"SELECT 1 FROM pg_roles WHERE rolname='vagrant'\" | grep -q 1" }
-  code <<-SCRIPT
-    createdb
-  SCRIPT
 end
 
 git "/usr/local/rbenv" do
   repository "https://github.com/sstephenson/rbenv.git"
-  action :sync
-end
-
-bash "install_rbenv" do
-  user "root"
-  cwd "/tmp"
-  not_if { ::File.exist?("/etc/profile.d/rbenv.sh") }
-  code <<-EOH
-    echo 'export RBENV_ROOT="/usr/local/rbenv"' >> /etc/profile.d/rbenv.sh
-    echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> /etc/profile.d/rbenv.sh
-    echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
-  EOH
 end
 
-directory "/usr/local/rbenv/plugins" do
-  action :create
+file "/etc/profile.d/rbenv.sh" do
+  content <<-CONTENT
+export RBENV_ROOT="/usr/local/rbenv"
+export PATH="/usr/local/rbenv/bin:$PATH"
+eval "$(rbenv init -)"
+CONTENT
 end
 
+directory "/usr/local/rbenv/plugins"
 git "/usr/local/rbenv/plugins/ruby-build" do
   repository "https://github.com/sstephenson/ruby-build.git"
-  action :sync
 end
 
 bash "install_ruby" do
   user "root"
   not_if { ::File.exist?("/usr/local/rbenv/shims/ruby") }
   code <<-EOH
-    source /etc/profile.d/rbenv.sh
-    rbenv install 2.2.3
-    rbenv global 2.2.3
-  EOH
+source /etc/profile.d/rbenv.sh
+rbenv install 2.2.3
+rbenv global 2.2.3
+EOH
 end
 
 bash "install_bundler" do
   user "root"
   code <<-EOH
-    source /etc/profile.d/rbenv.sh
-    gem install bundler --no-ri --no-rdoc
-  EOH
+source /etc/profile.d/rbenv.sh
+gem install bundler --no-ri --no-rdoc
+EOH
 end
 
-bash "copy_env_local" do
+execute "cp .env.example .env.local" do
   user "vagrant"
   cwd "/vagrant"
   not_if { ::File.exist?("/vagrant/.env.local") }
-  code <<-EOH
-    cp .env.example .env.local
-  EOH
-end
-
-service "redis-server" do
-  action [:enable, :start]
 end
 
-service "postgresql" do
-  action [:enable, :start]
+[ "redis-server", "postgresql" ].each do |service_name|
+  service service_name do
+    action [:enable, :start]
+  end
 end
Vagrantfile
@@ -1,21 +1,26 @@
 # -*- mode: ruby -*-
 # vi: set ft=ruby :
 
+# https://docs.vagrantup.com/v2/vmware/kernel-upgrade.html
+$fix_vmware_tools_script = <<SCRIPT
+sed -i.bak 's/answer AUTO_KMODS_ENABLED_ANSWER no/answer AUTO_KMODS_ENABLED_ANSWER yes/g' /etc/vmware-tools/locations
+sed -i 's/answer AUTO_KMODS_ENABLED no/answer AUTO_KMODS_ENABLED yes/g' /etc/vmware-tools/locations
+SCRIPT
+
 Vagrant.configure("2") do |config|
   config.vm.box = "phusion/ubuntu-14.04-amd64"
   config.vm.network :forwarded_port, guest: 3000, host: 3000
+  config.vm.provision :shell, inline: $fix_vmware_tools_script
   config.vm.provision :chef_apply do |chef|
     chef.recipe = File.read("config/chef_apply.rb")
-    chef.version = 'latest'
   end
   config.vm.provider :vmware_workstation do |vm|
-    vm.gui = false
-    vm.vmx["displayname"] = "stronglifters"
+    vm.vmx["memsize"] = "2048"
+    vm.vmx["numvcpus"] = "2"
   end
-  config.vm.provider :vmware_fusion do |v|
-    v.vmx["memsize"] = "2048"
-    v.vmx["numvcpus"] = "2"
+  config.vm.provider :vmware_fusion do |vm|
+    vm.vmx["memsize"] = "2048"
+    vm.vmx["numvcpus"] = "2"
   end
-  config.omnibus.chef_version = :latest
   config.ssh.forward_agent = true
 end