# frozen_string_literal: true

desc “Version control” namespace :version do

desc "Release a version: rake version:release version_tag"
task :release, :number do |_t, _args|
  version_tag = get_version_tag
  # Merge dev/master and push
  sh "git show-branch dev" do |ok, _res|
    if ok
      sh "git checkout master && git merge dev && git push && git checkout dev"
    else
      sh "git push"
    end
  end

  # Tagging
  sh "git tag -a #{version_tag} -m 'Version #{version_tag} - #{Time.now.to_date}'"
  sh "git push origin --tags"
end

desc "Delete a version: rake version:remove version_tag "
task :remove, :number do |_t, _args|
  version_tag = get_version_tag
  sh "git tag -d #{version_tag}"
  sh "git push origin :refs/tags/#{version_tag}"
end

def get_version_tag
  if ARGV[1].nil?
    puts "We need a version tag: $ rake version:release version_tag"
    raise
  else
    ARGV[1]
  end
end

end