VERSION_FILE = './lib/onapp/engine/version.rb'
require VERSION_FILE

def ask(msg, default = nil)
  print "%s (Default: %s): " % [msg, default ? default : "<empty>"]
  value = $stdin.gets.strip
  value.empty? ? default : value
end

def ask_yn?(msg)
  val = ask(msg.to_s + " (y/n)", "n")
  val[0] == 'y' ? true : false
end

def ask_sh(cmd)
  sh(cmd) if ask_yn?(cmd)
end

def release(version)
  sh %Q(sed -i 's/VERSION.\\+$/VERSION = "#{version}"/' #{VERSION_FILE})
  sh "git commit --message 'Bump version to #{version}' #{VERSION_FILE}"

  sh "git tag v#{version}"
  if ask_yn?("Push commit and tags?")
    sh "git push origin HEAD v#{version}"
  end
end

task :release do
  default_version = Onapp::Engine::VERSION.sub(/\d+$/) { |n| n.to_i + 1 }
  version = ask "Please, specify release version", default_version
  release(version)
end
