Commit e4ab3c55f7ef586880f36ec55bf57fa03834d928

Authored by John Barnette
1 parent 9d3e514b92

Stub auto-updating script/boxen

Showing 1 changed file with 51 additions and 0 deletions Inline Diff

File was created 1 #!/usr/bin/ruby
2 # Run Boxen.
3
4 require "pathname"
5
6 if ENV["USER"] == "root"
7 abort "Run this as a normal user, I'll sudo if I need to."
8 end
9
10 # Make sure only one boxen process runs at a time.
11
12 myself = File.new __FILE__
13
14 unless myself.flock File::LOCK_EX | File::LOCK_NB
15 abort "You're already running a boxen process! Know a patience."
16 end
17
18 # Yeah yeah, I like to be explicit.
19
20 at_exit { myself.flock File::LOCK_UN }
21
22 # Put us where we belong, in the root dir of our boxen repo.
23
24 Dir.chdir Pathname.new(__FILE__).realpath + "../.."
25
26 # Auto-update code. This is done as early as possible so that changes
27 # to boxen support code or dependencies can be grabbed.
28
29 unless ENV["BOXEN_NO_PULL"] || ARGV.include?("--no-pull")
30 if system("which git > /dev/null") && File.directory?(".git")
31 clean = `git status --porcelain`.empty?
32 master = `git symbolic-ref HEAD`.chomp == "refs/heads/master"
33 no_new_commits = system('git diff --exit-code --quiet origin/master master')
34
35 if clean && master && no_new_commits
36 quietly = "> /dev/null 2>&1"