pantograph 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/LICENSE +21 -0
  4. data/README.md +197 -0
  5. data/bin/bin-proxy +19 -0
  6. data/bin/pantograph +23 -0
  7. data/pantograph/README.md +11 -0
  8. data/pantograph/lib/assets/ActionDetails.md.erb +106 -0
  9. data/pantograph/lib/assets/Actions.md.erb +43 -0
  10. data/pantograph/lib/assets/DefaultPantfileTemplate +20 -0
  11. data/pantograph/lib/assets/completions/completion.bash +23 -0
  12. data/pantograph/lib/assets/completions/completion.fish +39 -0
  13. data/pantograph/lib/assets/completions/completion.sh +12 -0
  14. data/pantograph/lib/assets/completions/completion.zsh +23 -0
  15. data/pantograph/lib/assets/custom_action_template.rb +80 -0
  16. data/pantograph/lib/assets/report_template.xml.erb +15 -0
  17. data/pantograph/lib/pantograph/action.rb +194 -0
  18. data/pantograph/lib/pantograph/action_collector.rb +35 -0
  19. data/pantograph/lib/pantograph/actions/README.md +3 -0
  20. data/pantograph/lib/pantograph/actions/actions_helper.rb +166 -0
  21. data/pantograph/lib/pantograph/actions/add_extra_platforms.rb +45 -0
  22. data/pantograph/lib/pantograph/actions/artifactory.rb +157 -0
  23. data/pantograph/lib/pantograph/actions/bundle_install.rb +156 -0
  24. data/pantograph/lib/pantograph/actions/changelog_from_git_commits.rb +197 -0
  25. data/pantograph/lib/pantograph/actions/clipboard.rb +52 -0
  26. data/pantograph/lib/pantograph/actions/cloc.rb +89 -0
  27. data/pantograph/lib/pantograph/actions/create_pull_request.rb +190 -0
  28. data/pantograph/lib/pantograph/actions/danger.rb +131 -0
  29. data/pantograph/lib/pantograph/actions/debug.rb +32 -0
  30. data/pantograph/lib/pantograph/actions/default_platform.rb +47 -0
  31. data/pantograph/lib/pantograph/actions/download.rb +76 -0
  32. data/pantograph/lib/pantograph/actions/echo.rb +14 -0
  33. data/pantograph/lib/pantograph/actions/ensure_bundle_exec.rb +59 -0
  34. data/pantograph/lib/pantograph/actions/ensure_env_vars.rb +58 -0
  35. data/pantograph/lib/pantograph/actions/ensure_git_branch.rb +69 -0
  36. data/pantograph/lib/pantograph/actions/ensure_git_status_clean.rb +81 -0
  37. data/pantograph/lib/pantograph/actions/erb.rb +88 -0
  38. data/pantograph/lib/pantograph/actions/get_build_number_repository.rb +120 -0
  39. data/pantograph/lib/pantograph/actions/get_github_release.rb +163 -0
  40. data/pantograph/lib/pantograph/actions/git_add.rb +93 -0
  41. data/pantograph/lib/pantograph/actions/git_branch.rb +58 -0
  42. data/pantograph/lib/pantograph/actions/git_commit.rb +80 -0
  43. data/pantograph/lib/pantograph/actions/git_pull.rb +53 -0
  44. data/pantograph/lib/pantograph/actions/git_submodule_update.rb +52 -0
  45. data/pantograph/lib/pantograph/actions/git_tag_exists.rb +74 -0
  46. data/pantograph/lib/pantograph/actions/github_api.rb +262 -0
  47. data/pantograph/lib/pantograph/actions/gradle.rb +278 -0
  48. data/pantograph/lib/pantograph/actions/import.rb +49 -0
  49. data/pantograph/lib/pantograph/actions/import_from_git.rb +71 -0
  50. data/pantograph/lib/pantograph/actions/is_ci.rb +51 -0
  51. data/pantograph/lib/pantograph/actions/jira.rb +115 -0
  52. data/pantograph/lib/pantograph/actions/lane_context.rb +60 -0
  53. data/pantograph/lib/pantograph/actions/last_git_commit.rb +58 -0
  54. data/pantograph/lib/pantograph/actions/last_git_tag.rb +51 -0
  55. data/pantograph/lib/pantograph/actions/make_changelog_from_jenkins.rb +81 -0
  56. data/pantograph/lib/pantograph/actions/min_pantograph_version.rb +57 -0
  57. data/pantograph/lib/pantograph/actions/nexus_upload.rb +230 -0
  58. data/pantograph/lib/pantograph/actions/notification.rb +75 -0
  59. data/pantograph/lib/pantograph/actions/number_of_commits.rb +75 -0
  60. data/pantograph/lib/pantograph/actions/opt_out_usage.rb +40 -0
  61. data/pantograph/lib/pantograph/actions/pantograph_version.rb +15 -0
  62. data/pantograph/lib/pantograph/actions/println.rb +14 -0
  63. data/pantograph/lib/pantograph/actions/prompt.rb +119 -0
  64. data/pantograph/lib/pantograph/actions/push_git_tags.rb +76 -0
  65. data/pantograph/lib/pantograph/actions/push_to_git_remote.rb +127 -0
  66. data/pantograph/lib/pantograph/actions/puts.rb +68 -0
  67. data/pantograph/lib/pantograph/actions/reset_git_repo.rb +121 -0
  68. data/pantograph/lib/pantograph/actions/rocket.rb +83 -0
  69. data/pantograph/lib/pantograph/actions/rsync.rb +74 -0
  70. data/pantograph/lib/pantograph/actions/ruby_version.rb +56 -0
  71. data/pantograph/lib/pantograph/actions/say.rb +56 -0
  72. data/pantograph/lib/pantograph/actions/scp.rb +114 -0
  73. data/pantograph/lib/pantograph/actions/set_github_release.rb +274 -0
  74. data/pantograph/lib/pantograph/actions/sh.rb +71 -0
  75. data/pantograph/lib/pantograph/actions/skip_docs.rb +52 -0
  76. data/pantograph/lib/pantograph/actions/slack.rb +288 -0
  77. data/pantograph/lib/pantograph/actions/sonar.rb +156 -0
  78. data/pantograph/lib/pantograph/actions/ssh.rb +162 -0
  79. data/pantograph/lib/pantograph/actions/twitter.rb +89 -0
  80. data/pantograph/lib/pantograph/actions/update_pantograph.rb +177 -0
  81. data/pantograph/lib/pantograph/actions/zip.rb +120 -0
  82. data/pantograph/lib/pantograph/auto_complete.rb +82 -0
  83. data/pantograph/lib/pantograph/boolean.rb +5 -0
  84. data/pantograph/lib/pantograph/cli_tools_distributor.rb +183 -0
  85. data/pantograph/lib/pantograph/command_line_handler.rb +43 -0
  86. data/pantograph/lib/pantograph/commands_generator.rb +344 -0
  87. data/pantograph/lib/pantograph/configuration_helper.rb +26 -0
  88. data/pantograph/lib/pantograph/core_ext/bundler_monkey_patch.rb +14 -0
  89. data/pantograph/lib/pantograph/documentation/actions_list.rb +214 -0
  90. data/pantograph/lib/pantograph/documentation/docs_generator.rb +95 -0
  91. data/pantograph/lib/pantograph/documentation/markdown_docs_generator.rb +221 -0
  92. data/pantograph/lib/pantograph/environment_printer.rb +282 -0
  93. data/pantograph/lib/pantograph/erb_template_helper.rb +30 -0
  94. data/pantograph/lib/pantograph/features.rb +4 -0
  95. data/pantograph/lib/pantograph/helper/README.md +29 -0
  96. data/pantograph/lib/pantograph/helper/dotenv_helper.rb +50 -0
  97. data/pantograph/lib/pantograph/helper/gem_helper.rb +26 -0
  98. data/pantograph/lib/pantograph/helper/git_helper.rb +135 -0
  99. data/pantograph/lib/pantograph/helper/gradle_helper.rb +62 -0
  100. data/pantograph/lib/pantograph/helper/sh_helper.rb +134 -0
  101. data/pantograph/lib/pantograph/junit_generator.rb +27 -0
  102. data/pantograph/lib/pantograph/lane.rb +97 -0
  103. data/pantograph/lib/pantograph/lane_list.rb +77 -0
  104. data/pantograph/lib/pantograph/lane_manager.rb +140 -0
  105. data/pantograph/lib/pantograph/lane_manager_base.rb +92 -0
  106. data/pantograph/lib/pantograph/markdown_table_formatter.rb +62 -0
  107. data/pantograph/lib/pantograph/new_action.rb +47 -0
  108. data/pantograph/lib/pantograph/one_off.rb +45 -0
  109. data/pantograph/lib/pantograph/other_action.rb +29 -0
  110. data/pantograph/lib/pantograph/pant_file.rb +377 -0
  111. data/pantograph/lib/pantograph/pantograph_require.rb +75 -0
  112. data/pantograph/lib/pantograph/plugins/plugin_fetcher.rb +55 -0
  113. data/pantograph/lib/pantograph/plugins/plugin_generator.rb +86 -0
  114. data/pantograph/lib/pantograph/plugins/plugin_generator_ui.rb +19 -0
  115. data/pantograph/lib/pantograph/plugins/plugin_info.rb +49 -0
  116. data/pantograph/lib/pantograph/plugins/plugin_info_collector.rb +159 -0
  117. data/pantograph/lib/pantograph/plugins/plugin_manager.rb +387 -0
  118. data/pantograph/lib/pantograph/plugins/plugin_search.rb +46 -0
  119. data/pantograph/lib/pantograph/plugins/plugin_update_manager.rb +70 -0
  120. data/pantograph/lib/pantograph/plugins/plugins.rb +12 -0
  121. data/pantograph/lib/pantograph/plugins/template/%gem_name%.gemspec.erb +35 -0
  122. data/pantograph/lib/pantograph/plugins/template/.circleci/config.yml +43 -0
  123. data/pantograph/lib/pantograph/plugins/template/.gitignore +12 -0
  124. data/pantograph/lib/pantograph/plugins/template/.rspec +5 -0
  125. data/pantograph/lib/pantograph/plugins/template/.rubocop.yml +179 -0
  126. data/pantograph/lib/pantograph/plugins/template/.travis.yml +4 -0
  127. data/pantograph/lib/pantograph/plugins/template/Gemfile +6 -0
  128. data/pantograph/lib/pantograph/plugins/template/LICENSE.erb +21 -0
  129. data/pantograph/lib/pantograph/plugins/template/README.md.erb +52 -0
  130. data/pantograph/lib/pantograph/plugins/template/Rakefile +9 -0
  131. data/pantograph/lib/pantograph/plugins/template/lib/pantograph/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +47 -0
  132. data/pantograph/lib/pantograph/plugins/template/lib/pantograph/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +16 -0
  133. data/pantograph/lib/pantograph/plugins/template/lib/pantograph/plugin/%plugin_name%/version.rb.erb +5 -0
  134. data/pantograph/lib/pantograph/plugins/template/lib/pantograph/plugin/%plugin_name%.rb.erb +16 -0
  135. data/pantograph/lib/pantograph/plugins/template/pantograph/Pantfile.erb +3 -0
  136. data/pantograph/lib/pantograph/plugins/template/pantograph/Pluginfile.erb +1 -0
  137. data/pantograph/lib/pantograph/plugins/template/spec/%plugin_name%_action_spec.rb.erb +9 -0
  138. data/pantograph/lib/pantograph/plugins/template/spec/spec_helper.rb.erb +15 -0
  139. data/pantograph/lib/pantograph/runner.rb +371 -0
  140. data/pantograph/lib/pantograph/server/action_command.rb +61 -0
  141. data/pantograph/lib/pantograph/server/action_command_return.rb +14 -0
  142. data/pantograph/lib/pantograph/server/command_executor.rb +7 -0
  143. data/pantograph/lib/pantograph/server/command_parser.rb +36 -0
  144. data/pantograph/lib/pantograph/server/control_command.rb +23 -0
  145. data/pantograph/lib/pantograph/server/json_return_value_processor.rb +72 -0
  146. data/pantograph/lib/pantograph/server/socket_server.rb +232 -0
  147. data/pantograph/lib/pantograph/server/socket_server_action_command_executor.rb +101 -0
  148. data/pantograph/lib/pantograph/setup/setup.rb +290 -0
  149. data/pantograph/lib/pantograph/setup/setup_android.rb +64 -0
  150. data/pantograph/lib/pantograph/setup/setup_ios.rb +412 -0
  151. data/pantograph/lib/pantograph/shells.rb +6 -0
  152. data/pantograph/lib/pantograph/supported_platforms.rb +28 -0
  153. data/pantograph/lib/pantograph/tools.rb +10 -0
  154. data/pantograph/lib/pantograph/version.rb +5 -0
  155. data/pantograph/lib/pantograph.rb +51 -0
  156. data/pantograph_core/README.md +79 -0
  157. data/pantograph_core/lib/assets/XMLTemplate.xml.erb +12 -0
  158. data/pantograph_core/lib/pantograph_core/analytics/action_completion_context.rb +34 -0
  159. data/pantograph_core/lib/pantograph_core/analytics/action_launch_context.rb +38 -0
  160. data/pantograph_core/lib/pantograph_core/analytics/analytics_event_builder.rb +23 -0
  161. data/pantograph_core/lib/pantograph_core/analytics/analytics_ingester_client.rb +54 -0
  162. data/pantograph_core/lib/pantograph_core/analytics/analytics_session.rb +71 -0
  163. data/pantograph_core/lib/pantograph_core/cert_checker.rb +116 -0
  164. data/pantograph_core/lib/pantograph_core/command_executor.rb +99 -0
  165. data/pantograph_core/lib/pantograph_core/configuration/commander_generator.rb +103 -0
  166. data/pantograph_core/lib/pantograph_core/configuration/config_item.rb +314 -0
  167. data/pantograph_core/lib/pantograph_core/configuration/configuration.rb +332 -0
  168. data/pantograph_core/lib/pantograph_core/configuration/configuration_file.rb +182 -0
  169. data/pantograph_core/lib/pantograph_core/core_ext/shellwords.rb +63 -0
  170. data/pantograph_core/lib/pantograph_core/core_ext/string.rb +17 -0
  171. data/pantograph_core/lib/pantograph_core/env.rb +9 -0
  172. data/pantograph_core/lib/pantograph_core/feature/feature.rb +51 -0
  173. data/pantograph_core/lib/pantograph_core/features.rb +4 -0
  174. data/pantograph_core/lib/pantograph_core/globals.rb +27 -0
  175. data/pantograph_core/lib/pantograph_core/helper.rb +409 -0
  176. data/pantograph_core/lib/pantograph_core/keychain_importer.rb +74 -0
  177. data/pantograph_core/lib/pantograph_core/languages.rb +14 -0
  178. data/pantograph_core/lib/pantograph_core/module.rb +29 -0
  179. data/pantograph_core/lib/pantograph_core/pantograph_folder.rb +39 -0
  180. data/pantograph_core/lib/pantograph_core/pantograph_pty.rb +57 -0
  181. data/pantograph_core/lib/pantograph_core/pkg_file_analyser.rb +44 -0
  182. data/pantograph_core/lib/pantograph_core/print_table.rb +131 -0
  183. data/pantograph_core/lib/pantograph_core/string_filters.rb +51 -0
  184. data/pantograph_core/lib/pantograph_core/swag.rb +85 -0
  185. data/pantograph_core/lib/pantograph_core/tag_version.rb +31 -0
  186. data/pantograph_core/lib/pantograph_core/test_parser.rb +107 -0
  187. data/pantograph_core/lib/pantograph_core/ui/disable_colors.rb +17 -0
  188. data/pantograph_core/lib/pantograph_core/ui/errors/pantograph_common_error.rb +19 -0
  189. data/pantograph_core/lib/pantograph_core/ui/errors/pantograph_crash.rb +11 -0
  190. data/pantograph_core/lib/pantograph_core/ui/errors/pantograph_error.rb +25 -0
  191. data/pantograph_core/lib/pantograph_core/ui/errors/pantograph_exception.rb +19 -0
  192. data/pantograph_core/lib/pantograph_core/ui/errors/pantograph_shell_error.rb +11 -0
  193. data/pantograph_core/lib/pantograph_core/ui/errors.rb +1 -0
  194. data/pantograph_core/lib/pantograph_core/ui/github_issue_inspector_reporter.rb +62 -0
  195. data/pantograph_core/lib/pantograph_core/ui/implementations/shell.rb +159 -0
  196. data/pantograph_core/lib/pantograph_core/ui/interface.rb +205 -0
  197. data/pantograph_core/lib/pantograph_core/ui/pantograph_runner.rb +276 -0
  198. data/pantograph_core/lib/pantograph_core/ui/ui.rb +26 -0
  199. data/pantograph_core/lib/pantograph_core/update_checker/changelog.rb +37 -0
  200. data/pantograph_core/lib/pantograph_core/update_checker/update_checker.rb +107 -0
  201. data/pantograph_core/lib/pantograph_core.rb +45 -0
  202. metadata +987 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: '018b4427a06e29a18faebd4c42437f947f5408ab788f7863b4e2409c04d64aba'
4
+ data.tar.gz: d4b9c3e4f8d2a8ab2cd7e02ee72b8832b6f22c9324b47fc7b43641538c1bc4e7
5
+ SHA512:
6
+ metadata.gz: 2261f79d8c8e5e4c6cb6466991b132f92fc5a0b30fcd8ff7d478181766d5f42e66be06defa1ecbe7be88d75983b49d5a4070a10f43e529e4584696b29ed9faa2
7
+ data.tar.gz: 04c115dfb09681ad777e1ab3440407e73a7aab45c8785c0d44a35c59e3ab7760331ad6184172d0fd0992a1fe76866e93f05b55402a01414338918824ee8e48b9
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ **/lib/**/*.rb
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015-2019 The Pantograph Authors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,197 @@
1
+ # THIS IS A WORK IN PROGRESS - BROKEN FORK OF FASTLANE GEM
2
+
3
+ <h3 align="center">
4
+ <a href="https://github.com/pantograph/pantograph/blob/master/pantograph/assets/pantograph_text.png">
5
+ <img src="https://github.com/pantograph/pantograph/blob/master/pantograph/assets/pantograph_text.png?raw=true" alt="pantograph Logo" width="500">
6
+ </a>
7
+ </h3>
8
+
9
+ [![Twitter: @PantographTools](https://img.shields.io/badge/contact-@PantographTools-blue.svg?style=flat)](https://twitter.com/PantographTools)
10
+ [![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/pantograph/pantograph/blob/master/LICENSE)
11
+ [![Gem](https://img.shields.io/gem/v/pantograph.svg?style=flat)](https://rubygems.org/gems/pantograph)
12
+ [![Build Status](https://img.shields.io/circleci/project/github/pantograph/pantograph/master.svg)](https://circleci.com/gh/pantograph/pantograph)
13
+ [![PRs welcome!](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/pantograph/pantograph/blob/master/CONTRIBUTING.md)
14
+
15
+ _pantograph_ is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.
16
+
17
+ <hr />
18
+ <h2 align="center">
19
+ ✨ All pantograph docs were moved to <a href="https://docs.pantograph.tools/">docs.pantograph.tools</a> ✨
20
+ </h2>
21
+ <hr />
22
+
23
+ ## Need Help?
24
+
25
+ Before submitting a new GitHub issue, please make sure to
26
+
27
+ - Check out [docs.pantograph.tools](https://docs.pantograph.tools)
28
+ - Search for [existing GitHub issues](https://github.com/pantograph/pantograph/issues)
29
+
30
+ If the above doesn't help, please [submit an issue](https://github.com/pantograph/pantograph/issues) on GitHub and provide information about your setup, in particular the output of the `pantograph env` command.
31
+
32
+ **Note**: If you want to report a regression in _pantograph_ (something that has worked before, but broke with a new release), please mark your issue title as such using `[Regression] Your title here`. This enables us to quickly detect and fix regressions.
33
+
34
+ ## _pantograph_ team
35
+
36
+ <!-- This table is regenerated and resorted on each release -->
37
+ <table id='team'>
38
+ <tr>
39
+ <td id='helmut-januschka'>
40
+ <a href='https://github.com/hjanuschka'>
41
+ <img src='https://github.com/hjanuschka.png?size=140'>
42
+ </a>
43
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
44
+ </td>
45
+ <td id='manu-wallner'>
46
+ <a href='https://github.com/milch'>
47
+ <img src='https://github.com/milch.png?size=140'>
48
+ </a>
49
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
50
+ </td>
51
+ <td id='aaron-brager'>
52
+ <a href='https://github.com/getaaron'>
53
+ <img src='https://github.com/getaaron.png?size=140'>
54
+ </a>
55
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
56
+ </td>
57
+ <td id='matthew-ellis'>
58
+ <a href='https://github.com/matthewellis'>
59
+ <img src='https://github.com/matthewellis.png?size=140'>
60
+ </a>
61
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
62
+ </td>
63
+ <td id='olivier-halligon'>
64
+ <a href='https://github.com/AliSoftware'>
65
+ <img src='https://github.com/AliSoftware.png?size=140'>
66
+ </a>
67
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
68
+ </td>
69
+ </tr>
70
+ <tr>
71
+ <td id='kohki-miki'>
72
+ <a href='https://github.com/giginet'>
73
+ <img src='https://github.com/giginet.png?size=140'>
74
+ </a>
75
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
76
+ </td>
77
+ <td id='luka-mirosevic'>
78
+ <a href='https://github.com/lmirosevic'>
79
+ <img src='https://github.com/lmirosevic.png?size=140'>
80
+ </a>
81
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
82
+ </td>
83
+ <td id='josh-holtz'>
84
+ <a href='https://github.com/joshdholtz'>
85
+ <img src='https://github.com/joshdholtz.png?size=140'>
86
+ </a>
87
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
88
+ </td>
89
+ <td id='joshua-liebowitz'>
90
+ <a href='https://github.com/taquitos'>
91
+ <img src='https://github.com/taquitos.png?size=140'>
92
+ </a>
93
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
94
+ </td>
95
+ <td id='jan-piotrowski'>
96
+ <a href='https://github.com/janpio'>
97
+ <img src='https://github.com/janpio.png?size=140'>
98
+ </a>
99
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
100
+ </td>
101
+ </tr>
102
+ <tr>
103
+ <td id='fumiya-nakamura'>
104
+ <a href='https://github.com/nafu'>
105
+ <img src='https://github.com/nafu.png?size=140'>
106
+ </a>
107
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
108
+ </td>
109
+ <td id='jorge-revuelta-h'>
110
+ <a href='https://github.com/minuscorp'>
111
+ <img src='https://github.com/minuscorp.png?size=140'>
112
+ </a>
113
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
114
+ </td>
115
+ <td id='jimmy-dee'>
116
+ <a href='https://github.com/jdee'>
117
+ <img src='https://github.com/jdee.png?size=140'>
118
+ </a>
119
+ <h4 align='center'>Jimmy Dee</h4>
120
+ </td>
121
+ <td id='stefan-natchev'>
122
+ <a href='https://github.com/snatchev'>
123
+ <img src='https://github.com/snatchev.png?size=140'>
124
+ </a>
125
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
126
+ </td>
127
+ <td id='danielle-tomlinson'>
128
+ <a href='https://github.com/endocrimes'>
129
+ <img src='https://github.com/endocrimes.png?size=140'>
130
+ </a>
131
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
132
+ </td>
133
+ </tr>
134
+ <tr>
135
+ <td id='felix-krause'>
136
+ <a href='https://github.com/KrauseFx'>
137
+ <img src='https://github.com/KrauseFx.png?size=140'>
138
+ </a>
139
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
140
+ </td>
141
+ <td id='iulian-onofrei'>
142
+ <a href='https://github.com/revolter'>
143
+ <img src='https://github.com/revolter.png?size=140'>
144
+ </a>
145
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
146
+ </td>
147
+ <td id='jérôme-lacoste'>
148
+ <a href='https://github.com/lacostej'>
149
+ <img src='https://github.com/lacostej.png?size=140'>
150
+ </a>
151
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
152
+ </td>
153
+ <td id='maksym-grebenets'>
154
+ <a href='https://github.com/mgrebenets'>
155
+ <img src='https://github.com/mgrebenets.png?size=140'>
156
+ </a>
157
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
158
+ </td>
159
+ <td id='andrew-mcburney'>
160
+ <a href='https://github.com/armcburney'>
161
+ <img src='https://github.com/armcburney.png?size=140'>
162
+ </a>
163
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
164
+ </td>
165
+ </tr>
166
+ </table>
167
+
168
+ Special thanks to all [contributors](https://github.com/pantograph/pantograph/graphs/contributors) for extending and improving _pantograph_.
169
+
170
+ ## Contribute to _pantograph_
171
+
172
+ Check out [CONTRIBUTING.md](CONTRIBUTING.md) for more information on how to help with _pantograph_.
173
+
174
+ ## Code of Conduct
175
+
176
+ Help us keep _pantograph_ open and inclusive. Please read and follow our [Code of Conduct](https://github.com/pantograph/pantograph/blob/master/CODE_OF_CONDUCT.md).
177
+
178
+ ## Metrics
179
+
180
+ _pantograph_ tracks a few key metrics to understand how developers are using the tool and to help us know what areas need improvement. No personal/sensitive information is ever collected. Metrics that are collected include:
181
+
182
+ * The number of _pantograph_ runs
183
+ * A salted hash of the app identifier or package name, which helps us anonymously identify unique usage of _pantograph_
184
+
185
+ You can easily opt-out of metrics collection by adding `opt_out_usage` at the top of your `Pantfile` or by setting the environment variable `PANTOGRAPH_OPT_OUT_USAGE`. [Check out the metrics code on GitHub](https://github.com/pantograph/pantograph/tree/master/pantograph_core/lib/pantograph_core/analytics)
186
+
187
+ ## License
188
+
189
+ This project is licensed under the terms of the MIT license. See the [LICENSE](LICENSE) file.
190
+
191
+ > This project and all pantograph tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All pantograph tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use pantograph tools.
192
+
193
+ <hr />
194
+ <h2 align="center">
195
+ ✨ All pantograph docs were moved to <a href="https://docs.pantograph.tools/">docs.pantograph.tools</a> ✨
196
+ </h2>
197
+ <hr />
data/bin/bin-proxy ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "colored"
4
+ require "shellwords"
5
+
6
+ tool_name = File.basename($0)
7
+
8
+ full_params = ARGV.shelljoin
9
+
10
+ puts("[WARNING] You are calling #{tool_name} directly. Usage of the tool name without the `pantograph` prefix is deprecated in pantograph 2.0".yellow)
11
+ puts("Please update your scripts to use `pantograph #{tool_name} #{full_params}` instead.".yellow)
12
+
13
+ exec_arr = ["pantograph", tool_name] + ARGV
14
+
15
+ # The * turns the array into a parameter list
16
+ # This is using the form of exec which takes a variable parameter list, e.g. `exec(command, param1, param2, ...)`
17
+ # We need to use that, because otherwise invocations like
18
+ # `spaceauth -u user@pantograph.tools` would recognize "-u user@pantograph.tools" as a single parameter and throw errors
19
+ exec(*exec_arr)
data/bin/pantograph ADDED
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ if RUBY_VERSION < '2.0.0'
4
+ abort("pantograph requires Ruby 2.0.0 or higher")
5
+ end
6
+
7
+ def self.windows?
8
+ # taken from: https://stackoverflow.com/a/171011/1945875
9
+ (/cygwin|mswin|mingw|bccwin|wince|emx/ =~ RUBY_PLATFORM) != nil
10
+ end
11
+
12
+ require "pantograph/cli_tools_distributor"
13
+
14
+ if Pantograph::CLIToolsDistributor.running_version_command?
15
+ # This will print out the pantograph binary path right above the
16
+ # version number. Very often, users are not aware they have
17
+ # e.g. bundled pantograph installed
18
+ puts("pantograph installation at path:")
19
+ puts(File.expand_path(__FILE__))
20
+ puts("-----------------------------")
21
+ end
22
+
23
+ Pantograph::CLIToolsDistributor.take_off
@@ -0,0 +1,11 @@
1
+ <h3 align="center">
2
+ <a href="https://docs.pantograph.tools/">
3
+ <img src="https://raw.githubusercontent.com/pantograph/pantograph/master/pantograph/assets/pantograph.png" width="100" />
4
+ <br />
5
+ pantograph
6
+ </a>
7
+ </h3>
8
+
9
+ ------
10
+
11
+ <h3 align="center">The <i>pantograph</i> docs were moved to <a href='https://docs.pantograph.tools/'>docs.pantograph.tools</a></h3>
@@ -0,0 +1,106 @@
1
+ <!--
2
+ This file is auto-generated and will be re-generated every time the docs are updated.
3
+ To modify it, go to its source at https://github.com/johnknapprs/pantograph/blob/master/pantograph/lib/pantograph/actions/<%= @action_filename %>
4
+ -->
5
+
6
+ # <%= @action.action_name %>
7
+
8
+ <% action = @action %>
9
+ <%= action.description %>
10
+
11
+ <%= "> #{action.deprecated_notes.gsub("\n", "<br>")}" unless action.deprecated_notes.to_s.empty? %>
12
+
13
+ <% if @custom_content %>
14
+ <%= @custom_content %>
15
+ <hr />
16
+ <% else %>
17
+ <%= "> #{action.details.gsub(/(?<!\|)\n/, "<br>").gsub(/\|(?=\n|$)/, "")}" unless action.details.to_s.empty? %>
18
+ <% end %>
19
+
20
+ <%= action.action_name %> ||
21
+ ---|---
22
+ Supported platforms | <%= [:ios, :android, :mac].find_all { |a| action.is_supported?(a) }.join(", ") %>
23
+ Author | @<%= Array(action.author || action.authors).join(", @") %>
24
+ <%- unless action.return_value.to_s.empty? -%>
25
+ Returns | <%= action.return_value.gsub("\n", "<br>") %>
26
+ <%- end -%>
27
+
28
+ <% if (action.example_code || []).count > 0 %>
29
+
30
+ ## <%= action.example_code.count %> Example<%= (action.example_code.count > 1) ? "s" : "" %>
31
+ <% action.example_code.each do |current_sample| %>
32
+ ```ruby
33
+ <%= current_sample.gsub(" ", "") %>
34
+ ```
35
+ <% end %><%# End of action.example_code... %>
36
+ <% end %><%# End of if %>
37
+
38
+ <% if action.available_options && action.available_options.first.kind_of?(PantographCore::ConfigItem) %>
39
+
40
+ ## Parameters
41
+
42
+ Key | Description | Default
43
+ ----|-------------|--------
44
+ <%- (action.available_options || []).each do |config_item| -%>
45
+ <%- next unless config_item.kind_of?(PantographCore::ConfigItem) -%>
46
+ <%- next if config_item.description.to_s.length == 0 -%>
47
+ `<%= config_item.key %>` | <%= config_item.description.gsub(/(?<!\\)\|/, "\\|") %> | <%= config_item.doc_default_value %>
48
+ <%- end %>
49
+ <em id="parameters-legend-dynamic">* = default value is dependent on the user's system</em>
50
+ <% end %><%# End of action.available_options... %>
51
+
52
+ <hr />
53
+
54
+ <% if action.output && action.output.kind_of?(Array) && action.output.length > 0 %>
55
+
56
+ ## Lane Variables
57
+
58
+ Actions can communicate with each other using a shared hash `lane_context`, that can be accessed in other actions, plugins or your lanes: `lane_context[SharedValues:XYZ]`. The `<%= @action.action_name %>` action generates the following Lane Variables:
59
+
60
+ SharedValue | Description
61
+ ------------|-------------
62
+ <%- (action.output || []).each do |array_item| -%>
63
+ <%- next unless array_item.kind_of?(Array) -%>
64
+ <%- next if array_item.length != 2 -%>
65
+ `SharedValues::<%= array_item[0] %>` | <%= array_item[1] %>
66
+ <%- end %>
67
+ To get more information check the [Lanes documentation](https://docs.pantograph.tools/advanced/lanes/#lane-context).
68
+ <hr />
69
+ <% end %><%# End of action.output... %>
70
+
71
+ ## Documentation
72
+
73
+ To show the documentation in your terminal, run
74
+ ```no-highlight
75
+ pantograph action <%= action.action_name %>
76
+ ```
77
+
78
+ <hr />
79
+
80
+ ## CLI
81
+
82
+ It is recommended to add the above action into your `Pantfile`, however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal
83
+
84
+ ```no-highlight
85
+ pantograph run <%= @action.action_name %>
86
+ ```
87
+
88
+ To pass parameters, make use of the `:` symbol, for example
89
+
90
+ ```no-highlight
91
+ pantograph run <%= @action.action_name %> parameter1:"value1" parameter2:"value2"
92
+ ```
93
+
94
+ It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. `param:"1,2,3"`). Hashes are not currently supported.
95
+
96
+ It is recommended to add all _pantograph_ actions you use to your `Pantfile`.
97
+
98
+ <hr />
99
+
100
+ ## Source code
101
+
102
+ This action, just like the rest of _pantograph_, is fully open source, <a href="https://github.com/johnknapprs/pantograph/blob/master/pantograph/lib/pantograph/actions/<%= @action_filename %>" target="_blank">view the source code on GitHub</a>
103
+
104
+ <hr />
105
+
106
+ <a href="/actions/"><b>Back to actions</b></a>
@@ -0,0 +1,43 @@
1
+ <!--
2
+ This file is auto-generated and will be re-generated every time the docs are updated.
3
+ To modify it, go to its source at https://github.com/johnknapprs/pantograph/blob/master/pantograph/lib/assets/Actions.md.erb
4
+ -->
5
+
6
+ {!docs/includes/setup-pantograph-header.md!}
7
+
8
+ # pantograph actions
9
+
10
+ This page contains a list of all built-in pantograph actions and their available options.
11
+
12
+ To get the most up-to-date information from the command line on your current version you can also run
13
+
14
+ ```sh
15
+ pantograph actions # list all available pantograph actions
16
+ pantograph action [action_name] # more information for a specific action
17
+ ```
18
+
19
+ You can import another `Pantfile` by using the `import` action. This is useful if you have shared lanes across multiple apps and you want to store a `Pantfile` in a separate folder. The path must be relative to the `Pantfile` this is called from.
20
+
21
+ ```ruby
22
+ import './path/to/other/Pantfile'
23
+ ```
24
+
25
+ For _pantograph_ plugins, check out the [available plugins](/plugins/available-plugins/) page.
26
+ If you want to create your own action, check out the [local actions](/create-action/#local-actions) page.
27
+
28
+ <%- @categories.each do |category, actions| -%>
29
+ - [<%= category %>](#<%= category.gsub(" ", "-").downcase %>)
30
+ <%- end -%>
31
+ - [Plugins](/plugins/available-plugins/)
32
+
33
+ <%- @categories.each do |category, actions| %>
34
+ # <%= category %>
35
+
36
+ Action | Description | Supported Platforms
37
+ ---|---|---
38
+ <%- actions.sort.to_h.each do |_number_of_launches, action| -%>
39
+ <%- link = "/actions/#{action.action_name}/" -%>
40
+ <a href="<%= link %>"><%= action.action_name %></a> | <%= action.description %> | <%= [:ios, :android, :mac].find_all { |a| action.is_supported?(a) }.join(", ") %>
41
+ <%- end %><%# End of actions.sort... %>
42
+
43
+ <%- end %><%# End of categories.each %>
@@ -0,0 +1,20 @@
1
+ # This file contains the pantograph.tools configuration
2
+ # You can find the documentation at https://docs.pantograph.tools
3
+ #
4
+ # For a list of all available actions, check out
5
+ #
6
+ # https://docs.pantograph.tools/actions
7
+ #
8
+ # For a list of all available plugins, check out
9
+ #
10
+ # https://docs.pantograph.tools/plugins/available-plugins
11
+ #
12
+
13
+ # Uncomment the line if you want pantograph to automatically update itself
14
+ # update_pantograph
15
+
16
+ default_platform(:ios)
17
+
18
+ platform :ios do
19
+ [[LANES]]
20
+ end
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+
3
+ _pantograph_complete() {
4
+ COMPREPLY=()
5
+ local word="${COMP_WORDS[COMP_CWORD]}"
6
+ local completions=""
7
+
8
+ # look for Pantfile either in this directory or pantograph/ then grab the lane names
9
+ if [[ -e "Pantfile" ]]; then
10
+ file="Pantfile"
11
+ elif [[ -e "pantograph/Pantfile" ]]; then
12
+ file="pantograph/Pantfile"
13
+ elif [[ -e ".pantograph/Pantfile" ]]; then
14
+ file=".pantograph/Pantfile"
15
+ fi
16
+
17
+ # parse 'beta' out of 'lane :beta do', etc
18
+ completions=$(grep "^\s*lane \:" $file | awk -F ':' '{print $2}' | awk -F ' ' '{print $1}')
19
+ completions="$completions update_pantograph"
20
+
21
+ COMPREPLY=( $(compgen -W "$completions" -- "$word") )
22
+ }
23
+
@@ -0,0 +1,39 @@
1
+ # This function was taken from https://github.com/Carthage/Carthage/blob/master/Source/Scripts/carthage-fish-completion
2
+ function __fish_pantograph_needs_subcommand
3
+ set cmd (commandline -opc)
4
+ if [ (count $cmd) -eq 1 -a $cmd[1] = 'pantograph' ]
5
+ return 0
6
+ end
7
+ return 1
8
+ end
9
+
10
+ if test -e "Pantfile"
11
+ set file "Pantfile"
12
+ else if test -e "pantograph/Pantfile"
13
+ set file "pantograph/Pantfile"
14
+ else if test -e ".pantograph/Pantfile"
15
+ set file ".pantograph/Pantfile"
16
+ else
17
+ exit 1
18
+ end
19
+
20
+ set commands (string match --regex '.*lane\ \:(?!private_)([^\s]*)\ do' (cat $file))
21
+
22
+ set commands_string
23
+
24
+ # Fish returns the fully matched string, plus the capture group. The actual captured value
25
+ # is every other line, starting at line 2.
26
+ set use_command false
27
+
28
+ for line in $commands
29
+ if [ $use_command = true ]
30
+ set commands_string "$commands_string $line"
31
+ set use_command false
32
+ else
33
+ set use_command true
34
+ end
35
+ end
36
+
37
+ set commands_string "$commands_string update_pantograph"
38
+
39
+ complete -c pantograph -n '__fish_pantograph_needs_subcommand' -a (string trim $commands_string) -f
@@ -0,0 +1,12 @@
1
+ #!/bin/sh
2
+ # shellcheck disable=SC2155
3
+ # shellcheck disable=SC1090
4
+ # shellcheck disable=SC2039
5
+
6
+ if [ -n "$BASH_VERSION" ]; then
7
+ source ~/.pantograph/completions/completion.bash
8
+ elif [ -n "$ZSH_VERSION" ]; then
9
+ source ~/.pantograph/completions/completion.zsh
10
+ fi
11
+
12
+ # Do not remove v0.0.1
@@ -0,0 +1,23 @@
1
+ #!/bin/zsh
2
+
3
+ _pantograph_complete() {
4
+ local word completions
5
+ word="$1"
6
+
7
+ # look for Pantfile either in this directory or pantograph/ then grab the lane names
8
+ if [[ -e "Pantfile" ]] then
9
+ file="Pantfile"
10
+ elif [[ -e "pantograph/Pantfile" ]] then
11
+ file="pantograph/Pantfile"
12
+ elif [[ -e ".pantograph/Pantfile" ]] then
13
+ file=".pantograph/Pantfile"
14
+ fi
15
+
16
+ # parse 'beta' out of 'lane :beta do', etc
17
+ completions=`cat $file | grep "^\s*lane \:" | awk -F ':' '{print $2}' | awk -F ' ' '{print $1}'`
18
+ completions="$completions
19
+ update_pantograph"
20
+
21
+ reply=( "${(ps:\n:)completions}" )
22
+ }
23
+
@@ -0,0 +1,80 @@
1
+ module Pantograph
2
+ module Actions
3
+ module SharedValues
4
+ [[NAME_UP]]_CUSTOM_VALUE = :[[NAME_UP]]_CUSTOM_VALUE
5
+ end
6
+
7
+ class [[NAME_CLASS]] < Action
8
+ def self.run(params)
9
+ # pantograph will take care of reading in the parameter and fetching the environment variable:
10
+ UI.message("Parameter API Token: #{params[:api_token]}")
11
+
12
+ # sh("shellcommand ./path")
13
+
14
+ # Actions.lane_context[SharedValues::[[NAME_UP]]_CUSTOM_VALUE] = "my_val"
15
+ end
16
+
17
+ #####################################################
18
+ # @!group Documentation
19
+ #####################################################
20
+
21
+ def self.description
22
+ 'A short description with <= 80 characters of what this action does'
23
+ end
24
+
25
+ def self.details
26
+ # Optional:
27
+ # this is your chance to provide a more detailed description of this action
28
+ 'You can use this action to do cool things...'
29
+ end
30
+
31
+ def self.available_options
32
+ # Define all options your action supports.
33
+
34
+ # Below a few examples
35
+ [
36
+ PantographCore::ConfigItem.new(key: :api_token,
37
+ env_name: '[[NAME_UP]]_API_TOKEN', # The name of the environment variable
38
+ description: 'API Token for [[NAME_CLASS]]', # a short description of this parameter
39
+ verify_block: proc do |value|
40
+ UI.user_error!('No API token for [[NAME_CLASS]] given, pass using `api_token: "token"`') unless (value and not value.empty?)
41
+ end),
42
+ PantographCore::ConfigItem.new(key: :development,
43
+ env_name: '[[NAME_UP]]_DEVELOPMENT',
44
+ description: 'Create a development certificate instead of a distribution one',
45
+ is_string: false, # true: verifies the input is a string, false: every kind of value
46
+ default_value: false) # the default value if the user didn't provide one
47
+ ]
48
+ end
49
+
50
+ def self.output
51
+ # Define the shared values you are going to provide
52
+ # Example
53
+ [
54
+ ['[[NAME_UP]]_CUSTOM_VALUE', 'A description of what this value contains']
55
+ ]
56
+ end
57
+
58
+ def self.return_value
59
+ # If your method provides a return value, you can describe here what it does
60
+ end
61
+
62
+ def self.authors
63
+ # So no one will ever forget your contribution to pantograph :) You are awesome btw!
64
+ ['Your GitHub/Twitter Name']
65
+ end
66
+
67
+ def self.is_supported?(platform)
68
+ # you can do things like
69
+ #
70
+ # true
71
+ #
72
+ # platform == :ios
73
+ #
74
+ # [:ios, :mac].include?(platform)
75
+ #
76
+ true
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuites>
3
+ <testsuite name="pantograph.lanes">
4
+ <%# prefix index with leading zeroes to help alpha-numeric sorting. Note that index starts at 0 %>
5
+ <% log = (@steps.count-1).to_s.length %>
6
+ <% @steps.each_with_index do |step, index| %>
7
+ <% name = [index.to_s.rjust(log, "0"), step[:name]].join(": ") %>
8
+ <testcase classname="pantograph.lanes" name=<%= name.encode(:xml => :attr) %> time="<%= step[:time] %>">
9
+ <% if step[:error] %>
10
+ <failure message=<%= step[:error].encode(:xml => :attr).gsub("\n", "&#10;") %> />
11
+ <% end %>
12
+ </testcase>
13
+ <% end %>
14
+ </testsuite>
15
+ </testsuites>