This commit is contained in:
Vlad 2020-12-15 15:53:37 +03:00
parent d7a571400d
commit 64c8f85298
3 changed files with 16 additions and 13 deletions

View File

@ -1,6 +1,7 @@
$appName = File.basename(Dir['../*.xcworkspace'].first, '.*')
require_relative 'fastlane/touchlane/lib/touchlane'
require_relative File.expand_path "../build-scripts/xcode/managers/managers"
# ugly hack to add support for custom storage
@ -114,9 +115,12 @@ private_lane :generateFeaturesFile do |options|
builder_features_list = options[:features]
.split(",").map { |feature_name| feature_name.strip } # [ "Feature1", "Feature2", "Feature3" ]
.reject { |feature_name| feature_name.empty? }
Touchlane::Features.generate_features_file_in_project(builder_features_list, build_settings_file_path, project_features_file_path)
build_settings_features_list = Managers::FileManager.load_from_file_YAML(build_settings_file_path)["features"]
features_hash = Touchlane::Features.generate_features_hash(builder_features_list, build_settings_features_list)
Managers::FileManager.save_data_to_file_in_json(project_features_file_path, features_hash)
end
private_lane :buildConfiguration do |options|

View File

@ -1,12 +1,7 @@
require 'json'
require_relative File.expand_path "../build-scripts/xcode/managers/managers"
module Touchlane
class Features
def self.generate_features_file_in_project(builder_features_list, build_settings_file_path, project_features_file_path)
build_settings_features_list = Managers::FileManager.load_from_file_YAML(build_settings_file_path)["features"]
def self.generate_features_hash(builder_features_list, build_settings_features_list)
# Check is entered features contains in configuration file
features_diff = builder_features_list - build_settings_features_list
@ -15,12 +10,10 @@ module Touchlane
raise "Unexpected features: " + features_diff.join(', ')
end
# Generate JSON from feature names
feature_bodies = builder_features_list.map { |feature_name| { :name => feature_name, :enabled => true} }
# Generate hash from feature names
feature_bodies = builder_features_list.map { |feature_name| { :name => feature_name, :enabled => true } }
features_full_body = { :features => feature_bodies }
features_json = JSON.pretty_generate(features_full_body)
Managers::FileManager.save_data_to_file(project_features_file_path, features_json)
features_full_body.to_hash()
end
private_class_method :new

View File

@ -1,4 +1,5 @@
require 'yaml'
require 'json'
module Managers
class FileManager
@ -20,6 +21,11 @@ module Managers
YAML.load_file(path)
end
end
def self.save_data_to_file_in_json(path, data)
json_data = JSON.pretty_generate(data)
save_data_to_file(path, json_data)
end
private_class_method :new