Module: Baltix::Loader::GitVersionGen

Included in:
Source::Gem
Defined in:
lib/baltix/loader/git-version-gen.rb

Overview

GIT-VERSION-GEN version generator based gemspec preparser example: “kgio” gem

Instance Method Summary collapse

Instance Method Details

#git_version_gen(execfile) ⇒ Object



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
# File 'lib/baltix/loader/git-version-gen.rb', line 5

def git_version_gen execfile
   IO.popen(execfile) do |io|
      debug(io.readlines)
   end

   dir = File.dirname(execfile)
   version_line = IO.read(File.join(dir, "GIT-VERSION-FILE"))
   if /=(?<version>.*)/ =~ version_line
      ENV["VERSION"] = version.strip
   end

   # dot manifest generation
   files = Dir["*/**/*"].select {|x| File.file?(x) }
   File.open(".manifest", "w+") {|f| f.puts(files.join("\n"))}

   # make documentaion
   if File.directory?('Documentation')
      `make -C Documentation`
   end

   if !File.exist?('.manifest') || !File.exist?('.gem-manifest')
      files = Dir.glob("**/*", File::FNM_DOTMATCH).reject do |f|
         /\/\.git/ =~ f || File.directory?(f)
      end

      File.open(File.join('.gem-manifest'), "w") { |f| f.puts files }
      FileUtils.cp('.gem-manifest', '.manifest')
   end

   nil
end