Blame view
script/boxen
1.64 KB
e4ab3c55f Stub auto-updatin... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
#!/usr/bin/ruby # Run Boxen. require "pathname" if ENV["USER"] == "root" abort "Run this as a normal user, I'll sudo if I need to." end # Make sure only one boxen process runs at a time. myself = File.new __FILE__ unless myself.flock File::LOCK_EX | File::LOCK_NB abort "You're already running a boxen process! Know a patience." end # Yeah yeah, I like to be explicit. at_exit { myself.flock File::LOCK_UN } # Put us where we belong, in the root dir of our boxen repo. Dir.chdir Pathname.new(__FILE__).realpath + "../.." # Auto-update code. This is done as early as possible so that changes # to boxen support code or dependencies can be grabbed. unless ENV["BOXEN_NO_PULL"] || ARGV.include?("--no-pull") if system("which git > /dev/null") && File.directory?(".git") clean = `git status --porcelain`.empty? master = `git symbolic-ref HEAD`.chomp == "refs/heads/master" no_new_commits = system('git diff --exit-code --quiet origin/master master') if clean && master && no_new_commits quietly = "> /dev/null 2>&1" fetch = "(git fetch origin #{quietly})" reset = "(git reset --hard origin/master #{quietly})" reclean = "(git clean -df #{quietly})" unless system "#{fetch} && #{reset} && #{reclean}" warn "Couldn't auto-update, continuing." end end end end # Make sure our local dependencies are up to date. strap = %w(script/bootstrap --deployment --local --without development:test) abort "Can't bootstrap, dependencies are outdated." unless system *strap |
9554e58b4 Spike config/basic |
52 53 54 55 |
# Set up our local configuration, deps, and load path. load "config/basic.rb" |
cea2b22c9 Call Boxen.run |
56 57 58 59 |
# Okay, let's run this thing. exit Boxen.run ARGV |