3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'fastlane/lib/fastlane/documentation/docs_generator.rb', line 3
def self.run(ff, output_path = nil)
output_path ||= File.join(FastlaneCore::FastlaneFolder.path || '.', 'README.md')
output = ["fastlane documentation"]
output << "----"
output << ""
output << "# Installation"
output << ""
output << "Make sure you have the latest version of the Xcode command line tools installed:"
output << ""
output << "```sh"
output << "xcode-select --install"
output << "```"
output << ""
output << "For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)"
output << ""
output << "# Available Actions"
all_keys = ff.runner.lanes.keys.reject(&:nil?)
all_keys.unshift(nil)
all_keys.each do |platform|
lanes = ff.runner.lanes[platform]
if lanes.nil? || lanes.empty? || lanes.all? { |_, lane| lane.is_private }
next
end
if platform
output << ""
output << "## #{formatted_platform(platform)}"
end
lanes.each do |lane_name, lane|
next if lane.is_private
output << render(platform, lane_name, lane.description.join("\n\n"))
end
output << ""
output << "----"
output << ""
end
output << "This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run."
output << ""
output << "More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools)."
output << ""
output << "The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools)."
output << ""
begin
File.write(output_path, output.join("\n"))
UI.success("Successfully generated documentation at path '#{File.expand_path(output_path)}'") if FastlaneCore::Globals.verbose?
rescue => ex
UI.error(ex)
UI.error("Couldn't save fastlane documentation at path '#{File.expand_path(output_path)}', make sure you have write access to the containing directory.")
end
end
|