# frozen_string_literal: true module GoNative module Commands module Android class Publish < Base desc 'Used to update one of the android internal dependencies' def call assert_build_file_exists! create_and_push_tag! end def assert_build_file_exists! return unless gradle_files.empty? raise Error, "No build.gradle file exists" end private def gradle_files @gradle_files ||= `find . -iname build.gradle`.split("\n") end def version @version if @version gradle_files.each do |gradle_file| str = IO.read(gradle_file) @version = str.match(/versionName\s+"(?.+)"/)[:version] break if @version end end def create_and_push_tag! unless system("git tag | grep #{version} > /dev/null") system "git add -A && git commit -m \"Releases #{version}.\"" system "git tag #{version}" system "git push && git push --tags" end end end end end end