3 # Load rbot from this directory. (No need to install it with setup.rb)
7 puts "Running from #{SCM_DIR}"
9 $LOAD_PATH.unshift File.join(SCM_DIR, 'lib')
19 # new versions of git name-rev take --annotate-stdin, but some users may be using an older version that only understands --stdin
20 git_name_rev_option = `git name-rev -h | grep annotate`.empty? ? '--stdin' : '--annotate-stdin'
21 git_out = `git log -1 --pretty=raw | git name-rev #{git_name_rev_option}`.split("\n")
22 commit, branch_spec = git_out.first.scan(/^commit (\S+)(?: \((\S+)\))?$/).first
23 $version_timestamp = git_out[4].split[-2].to_i
24 subject = git_out[6].strip rescue ''
25 subject[77..-1] = '...' if subject.length > 80
26 rev = "revision #{commit[0, 7]}"
27 rev << " [#{subject}]" unless subject.empty?
28 changes = `git diff-index --stat HEAD`.split("\n").last.split(', ').first rescue nil
29 rev << ", #{changes.strip}" if changes
31 tag, branch, offset = branch_spec.scan(/^(?:(tag)s\/)?(\S+?)(?:^0)?(?:~(\d+))?$/).first
34 branch << "-#{offset}" if offset
36 branch = 'unknown branch'
40 branch = 'unknown branch'
41 rev = 'unknown revision'
43 $version << " (#{branch}, #{rev})"
44 elsif File.directory? File.join(SCM_DIR, '.svn')
45 rev = ' (unknown revision)'
48 rev = " (revision #{$1}" if svn_out =~ /Last Changed Rev: (\d+)/
49 svn_st = `svn st #{SCM_DIR}`
50 rev << ', local changes' if svn_st =~ /^[MDA] /
64 @@datadir = File.join SCM_DIR, 'data/rbot'
65 @@coredir = File.join SCM_DIR, 'lib/rbot/core'
70 load File.join(SCM_DIR, 'bin/rbot')