X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=launch_here.rb;h=7c4b2a5fcc61c65ee167fae8cf85256fca77648b;hb=4c370084c8a72c944bf287580729e56020196be0;hp=6f9de4bf9983d48d871a6210ef00d8b7f6fb8bf8;hpb=576727b619cfa6a0e7e2860450aef67a9563f803;p=user%2Fhenk%2Fcode%2Fruby%2Frbot.git diff --git a/launch_here.rb b/launch_here.rb index 6f9de4bf..7c4b2a5f 100755 --- a/launch_here.rb +++ b/launch_here.rb @@ -1,4 +1,4 @@ -#!/usr/bin/ruby +#!/usr/bin/env ruby # # Load rbot from this directory. (No need to install it with setup.rb) # @@ -8,7 +8,7 @@ puts "Running from #{SCM_DIR}" $:.unshift File.join(SCM_DIR, 'lib') -$version = '0.9.15-git' +$version = '0.9.15' pwd = Dir.pwd begin @@ -16,29 +16,29 @@ begin 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] + git_out = `git log -1 --pretty=raw | git name-rev --stdin`.split("\n") + commit, branch_spec = git_out.first.scan(/^commit (\S+)(?: \((\S+)\))?$/).first + $version_timestamp = git_out[4].split[-2].to_i + subject = git_out[6].strip rescue "" + subject[77..-1] = "..." if subject.length > 80 + rev = "revision #{commit[0,7]}" + rev << " [#{subject}]" unless subject.empty? + changes = `git diff-index --stat HEAD`.split("\n").last.split(", ").first rescue nil + rev << ", #{changes.strip}" if changes + if branch_spec + tag, branch, offset = branch_spec.scan(/^(?:(tag)s\/)?(\S+?)(?:^0)?(?:~(\d+))?$/).first + tag ||= "branch" + branch << " #{tag}" + branch << "-#{offset}" if offset + else + branch = "unknown branch" end rescue => e puts e.inspect branch = "unknown branch" rev = "unknown revision" end - $version << " (#{branch} branch, #{rev})" + $version << " (#{branch}, #{rev})" elsif File.directory? File.join(SCM_DIR, '.svn') rev = " (unknown revision)" begin