add penchant for dev stuff
This commit is contained in:
parent
f31dd0f3d4
commit
aef76fac19
10
Gemfile
10
Gemfile
@ -1,4 +1,8 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# Specify your gem's dependencies in bullseye.gemspec
|
||||
# generated by penchant, environment: remote
|
||||
source "https://rubygems.org"
|
||||
gemspec
|
||||
gem "rake"
|
||||
gem "capybara"
|
||||
gem "cucumber"
|
||||
gem "rspec"
|
||||
gem "cuke-pack", {:git=>"git://github.com/johnbintz/cuke-pack.git"}
|
25
Gemfile.penchant
Normal file
25
Gemfile.penchant
Normal file
@ -0,0 +1,25 @@
|
||||
# ensure git hooks are always installed
|
||||
ensure_git_hooks!
|
||||
|
||||
# everything in the :local env is assumed to be a sibling directory of this one
|
||||
defaults_for env(:local), :path => '../%s'
|
||||
|
||||
# reference a github repository with gem 'my-gem', :github => 'username'
|
||||
property :github, :git => 'git://github.com/$1/%s.git'
|
||||
source 'https://rubygems.org'
|
||||
|
||||
# Specify your gem's dependencies in bullseye.gemspec
|
||||
gemspec
|
||||
|
||||
gem 'rake'
|
||||
|
||||
gems 'capybara', 'cucumber', 'rspec'
|
||||
|
||||
env :local do
|
||||
gem 'cuke-pack'
|
||||
end
|
||||
|
||||
env :remote do
|
||||
gem 'cuke-pack', :github => 'johnbintz'
|
||||
end
|
||||
|
@ -60,3 +60,9 @@ Want to target that page in your Sass? Use a little string interpolation and a f
|
||||
```
|
||||
|
||||
Piece of cake.
|
||||
|
||||
## Hacking
|
||||
|
||||
_You'll need to install [Penchant](http://github.com/johnbintz/penchant) to mess with the Gemfile
|
||||
during development._
|
||||
|
||||
|
11
script/gemfile
Executable file
11
script/gemfile
Executable file
@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require 'rubygems'
|
||||
require 'penchant'
|
||||
|
||||
if Penchant::Gemfile.do_full_env_switch!(ARGV[0])
|
||||
puts "Gemfile switched to #{ARGV[0]}"
|
||||
else
|
||||
exit 0
|
||||
end
|
||||
|
40
script/hooks/commit-msg
Executable file
40
script/hooks/commit-msg
Executable file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
msg=$(cat $1)
|
||||
|
||||
OLD_GIT_DIR=$GIT_DIR
|
||||
|
||||
# lion appears to insert git paths before everything else. ensure rvm can
|
||||
# bust through, at the very least.
|
||||
if [ ! -z "$MY_RUBY_HOME" ]; then
|
||||
PATH="$MY_RUBY_HOME/bin:$PATH"
|
||||
fi
|
||||
|
||||
if [ ! -z "$GEM_PATH" ]; then
|
||||
oifs="$IFS"
|
||||
while IFS=":" read -ra GEM_PATHS; do
|
||||
FIXED_GEM_PATH=""
|
||||
for i in "${GEM_PATHS[@]}"; do
|
||||
FIXED_GEM_PATH="$FIXED_GEM_PATH:${i}/bin"
|
||||
done
|
||||
done <<< "$GEM_PATH"
|
||||
IFS="$oifs"
|
||||
PATH="$FIXED_GEM_PATH:$PATH"
|
||||
fi
|
||||
|
||||
if [[ "${msg}" != *"[ci skip]"* ]]; then
|
||||
if [ "$(penchant gemfile-env)" != "remote" ]; then
|
||||
unset GIT_DIR
|
||||
penchant gemfile remote
|
||||
GIT_DIR=$OLD_GIT_DIR
|
||||
fi
|
||||
|
||||
if [ $(bundle exec rake -P | grep default | wc -l) -ne 0 ]; then
|
||||
bundle exec rake
|
||||
R=$?
|
||||
if [ $R -ne 0 ]; then exit $R; fi
|
||||
else
|
||||
echo "[penchant] No default Rake task found! Add one if you want to run tests before committing."
|
||||
fi
|
||||
fi
|
||||
|
5
script/hooks/post-commit
Executable file
5
script/hooks/post-commit
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
unset GIT_DIR
|
||||
penchant gemfile remote --switch-back
|
||||
|
14
script/hooks/pre-commit
Executable file
14
script/hooks/pre-commit
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $(bundle exec rake -P | grep preflight_check | wc -l) -ne 0 ]; then
|
||||
bundle exec rake preflight_check
|
||||
R=$?
|
||||
if [ $R -ne 0 ]; then exit $R; fi
|
||||
fi
|
||||
|
||||
unset GIT_DIR
|
||||
penchant gemfile remote --deployment
|
||||
GIT_DIR=$OLD_GIT_DIR
|
||||
git add Gemfile*
|
||||
|
||||
exit 0
|
35
script/initialize-environment
Executable file
35
script/initialize-environment
Executable file
@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
if File.file?('Gemfile.erb')
|
||||
pwd = Dir.pwd
|
||||
|
||||
Dir.chdir '..' do
|
||||
File.readlines(File.join(pwd, 'Gemfile.erb')).find_all { |line| line[':git'] }.each do |line|
|
||||
repo = line[%r{:git => (['"])([^'"]+)\1}, 2]
|
||||
|
||||
puts "Installing #{repo}"
|
||||
system %{git clone #{repo}}
|
||||
end
|
||||
end
|
||||
|
||||
puts "Bundling for local environment"
|
||||
system %{script/gemfile local}
|
||||
else
|
||||
puts "Bundling..."
|
||||
system %{bundle}
|
||||
end
|
||||
|
||||
puts "Installing git hooks"
|
||||
system %{script/install-git-hooks}
|
||||
|
||||
bundle = File.file?('Gemfile') ? 'bundle exec' : ''
|
||||
|
||||
command = [ bundle, 'rake', '-s', '-T', 'bootstrap' ]
|
||||
|
||||
if !(%x{#{command.join(' ')}}).empty?
|
||||
puts "Trying to run rake bootstrap..."
|
||||
system %{#{bundle} rake bootstrap}
|
||||
end
|
||||
|
||||
puts "Done!"
|
||||
|
6
script/install-git-hooks
Executable file
6
script/install-git-hooks
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
for hook in script/hooks/* ; do
|
||||
ln -sf $PWD/$hook .git/hooks/${hook##*/}
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user