Sha256: 40486c98df4837230a96e4acdfe55d02a3bd9f0b22c10895720ce8d1df11d1d7

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

require 'thor'
require 'thor-scmversion/scm_version'
require 'thor-scmversion/git_version'
require 'thor-scmversion/p4_version'
require 'thor-scmversion/shell_utils'

module ThorSCMVersion
  class Tasks < Thor
    namespace "version"

    desc "bump TYPE", "Bump version number (type is major, minor or patch)"
    def bump(type)
      current_version.bump! type
      begin
        say "Creating and pushing tags", :yellow
        current_version.tag
        say "Writing files: #{version_files.join(', ')}", :yellow
        write_version
        say "Tagged: #{current_version}", :green
      rescue => e
        say "Tagging #{current_version} failed due to error", :red
        say e, :red
        exit 1
      end
    end

    desc "current", "Show current SCM tagged version"
    def current
      say current_version.to_s
    end

    private
    def current_version
      @current_version ||= ThorSCMVersion.versioner.from_path
    end

    def write_version
      ver = current_version.to_s
      version_files.each do |ver_file|
        File.open(ver_file, 'w+') do |f| 
          f.write ver
        end
      end
      ver
    end

    eval "def source_root ; Pathname.new File.dirname(__FILE__) ; end"
    def version_files
      [
       source_root.join('VERSION')
      ]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
thor-scmversion-0.0.4 lib/thor-scmversion.rb