class Fastlane::Helper::IOSFileHelper
Constants
- IOS_DESCRIPTION_DIR
- IOS_DESCRIPTION_FILENAME
- IOS_METADATA_LOC
- IOS_RELEASE_NOTES_DIR
- IOS_RELEASE_NOTES_FILENAME
Public Class Methods
prepareFiles(params, country_MetaData)
click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/helper/ios_file_helper.rb, line 22 def self.prepareFiles(params, country_MetaData) UI.message("Preparing files for IOS AppStore release.".yellow) # MetaData root metadata_root_dir = "#{params[:metaDataRoot]}" UI.message(["Step: Location where metadata will be downloaded:", metadata_root_dir].join(" ").blue) # Get current metadata from iOS AppStore UI.message("Preparing location for metadata download.".yellow) clearMetaDataDir(metadata_root_dir) #Get info about version from Info.plist app_version = "#{params[:appVersion]}" UI.message("Step: Fetching current metadata from IOS AppStore".blue) fetchCurrentMetaData(metadata_root_dir, app_version) # Prepare files for release UI.message("Applying changes to fetched metadata.".yellow) num_of_languages = IOS_METADATA_LOC.size num_of_processed_languages = 0 for i in 0 ... country_MetaData.size language_MetaData = country_MetaData[i] language_Key = language_MetaData.language.downcase unless IOS_METADATA_LOC.key?(language_Key) next end UI.message(["Step: ---- Attempting to create files for language -", language_Key].join(" ").blue) create_description(metadata_root_dir, language_Key, language_MetaData) create_releaseNotes(metadata_root_dir, language_Key, language_MetaData) num_of_processed_languages += 1 UI.message("Step: ---- Files updated".blue) end # Check if all languages were processed if num_of_processed_languages != num_of_languages UI.message("Error: expected to receive metadata for: #{num_of_languages} languages, but received for: #{num_of_processed_languages}!".red) raise Exception, "Lane was stopped by script" end end
Private Class Methods
clearMetaDataDir(metadata_root_dir)
click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/helper/ios_file_helper.rb, line 68 def self.clearMetaDataDir(metadata_root_dir) if (File.directory?(metadata_root_dir)) UI.message(["Step: Removed old metadata folder in location:", metadata_root_dir].join(" ").blue) FileUtils.rm_rf(metadata_root_dir) end end
create_description(metadata_root_dir, language_Key, language_MetaData)
click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/helper/ios_file_helper.rb, line 120 def self.create_description(metadata_root_dir, language_Key, language_MetaData) fulldescription_metaDataDir = [ metadata_root_dir, IOS_METADATA_LOC[language_Key], IOS_DESCRIPTION_DIR].join UI.message(["Step: Attempting to prepare", IOS_DESCRIPTION_FILENAME, "for language:", language_Key, "- in location:",fulldescription_metaDataDir].join(" ").blue) unless File.directory?(fulldescription_metaDataDir) UI.message(["Error: Could not find location'", fulldescription_metaDataDir, "'."].join(" ").red) raise Exception, "Lane was stopped by script" end file = fulldescription_metaDataDir + IOS_DESCRIPTION_FILENAME if File.exists?(file) File.delete(file) end new_File = File.new(file, "w") begin new_File.puts(language_MetaData.description_ios) ensure new_File.close end new_File = File.open(file, "r") begin content = new_File.read UI.message(["Step:", IOS_DESCRIPTION_FILENAME, "- length: #{content.length}"].join(" ").blue) ensure new_File.close end end
create_releaseNotes(metadata_root_dir, language_Key, language_MetaData)
click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/helper/ios_file_helper.rb, line 86 def self.create_releaseNotes(metadata_root_dir, language_Key, language_MetaData) releaseNotes_metaDataDir = [ metadata_root_dir, IOS_METADATA_LOC[language_Key], IOS_RELEASE_NOTES_DIR].join UI.message(["Step: Attempting to prepare", IOS_RELEASE_NOTES_FILENAME, "file for language:", language_Key, "- in location:", releaseNotes_metaDataDir].join(" ").blue) unless File.directory?(releaseNotes_metaDataDir) UI.message(["Error: Could not find location'", releaseNotes_metaDataDir, "'."].join(" ").red) raise Exception, "Lane was stopped by script" end file = releaseNotes_metaDataDir + IOS_RELEASE_NOTES_FILENAME if File.exists?(file) File.delete(file) end new_File = File.new(file, "w") begin new_File.puts(language_MetaData.releaseNotesiOS) ensure new_File.close end new_File = File.open(file, "r") begin content = new_File.read UI.message(["Step:", IOS_RELEASE_NOTES_FILENAME, "- length: #{content.length}"].join(" ").blue) ensure new_File.close end end
fetchCurrentMetaData(metadata_root_dir, app_version)
click to toggle source
# File lib/fastlane/plugin/deploy_file_provider/helper/ios_file_helper.rb, line 76 def self.fetchCurrentMetaData(metadata_root_dir, app_version) fetch_command = "fastlane deliver download_metadata --force -m #{metadata_root_dir} --overwrite_screenshots --app_version #{app_version} --skip_binary_upload true" Action.sh(fetch_command) unless File.directory?(metadata_root_dir) UI.message(["Error: Could not find location'", metadata_root_dir, "'."].join(" ").red) raise Exception, "Lane was stopped by script" end end