summaryrefslogtreecommitdiff
path: root/launch_here.rb
diff options
context:
space:
mode:
authordmitry kim <jason@nichego.net>2008-06-20 16:24:38 +0400
committerdmitry kim <jason@nichego.net>2008-06-20 16:34:17 +0400
commitc53a13e0be7ad9f569bee2ce450b875f5abe7de5 (patch)
treecab71f3628831c65d3378debaf6ec21f2b72cbb1 /launch_here.rb
parent48ed38dda0dc27862888e38ca45f4d535a49b463 (diff)
* directory independent launch_here.rb: 3rd attempt
Diffstat (limited to 'launch_here.rb')
-rwxr-xr-xlaunch_here.rb52
1 files changed, 48 insertions, 4 deletions
diff --git a/launch_here.rb b/launch_here.rb
index 95d383ba..b368f4c6 100755
--- a/launch_here.rb
+++ b/launch_here.rb
@@ -4,14 +4,58 @@
#
SCM_DIR = File.expand_path File.dirname(__FILE__)
-$0 = File.expand_path $0
-
-Dir.chdir SCM_DIR
-
puts "Running from #{SCM_DIR}"
$:.unshift File.join(SCM_DIR, 'lib')
+$version = '0.9.11-git'
+
+pwd = Dir.pwd
+begin
+ Dir.chdir SCM_DIR
+
+ if File.exists? '.git'
+ begin
+ git_out = `git status`
+ git_out.match(/^# On branch (.*)\n/)
+ if $1 # git 1.5.x
+ branch = $1.dup || "unknown"
+ changed = git_out.match(/^# Change(.*)\n/)
+ rev = "revision "
+ git_out = `git log -1 --pretty=format:"%h%n%b%n%ct"`.split("\n")
+ rev << git_out.first
+ $version_timestamp = git_out.last.to_i
+ rev << "(svn #{$1})" if git_out[1].match(/^git-svn-id: \S+@(\d+)/)
+ rev << ", local changes" if changed
+ else # older gits
+ git_out = `git branch`
+ git_out.match(/^\* (.*)\n/)
+ branch = $1.dup rescue "unknown"
+ rev = "revision " + `git rev-parse HEAD`[0,6]
+ end
+ rescue => e
+ puts e.inspect
+ branch = "unknown branch"
+ rev = "unknown revision"
+ end
+ $version << " (#{branch} branch, #{rev})"
+ elsif File.directory? File.join(up, '.svn')
+ rev = " (unknown revision)"
+ begin
+ svn_out = `svn info`
+ rev = " (revision #{$1}" if svn_out =~ /Last Changed Rev: (\d+)/
+ svn_st = `svn st #{up}`
+ rev << ", local changes" if svn_st =~ /^[MDA] /
+ rev << ")"
+ rescue => e
+ puts e.inspect
+ end
+ $version += rev
+ end
+ensure
+ Dir.chdir pwd
+end
+
module Irc
class Bot
module Config