# 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 if gradle_file raise Error, "No build.gradle file exists" end private def gradle_file @gradle_file ||= Dir.entries(".").select { |s| s == "build.gradle" }.first end def version str = IO.read(gradle_file) str.match(/versionName\s+\"(?.+)\"/) str.match(/versionName\s+\"(?.+)\"/)[:version] 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