pantograph 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -127
- data/pantograph/README.md +2 -2
- data/pantograph/lib/assets/ActionDetails.md.erb +1 -1
- data/pantograph/lib/assets/DefaultPantfileTemplate +18 -5
- data/pantograph/lib/pantograph/action_collector.rb +1 -1
- data/pantograph/lib/pantograph/actions/actions_helper.rb +2 -2
- data/pantograph/lib/pantograph/actions/clipboard.rb +1 -1
- data/pantograph/lib/pantograph/actions/lane_context.rb +1 -1
- data/pantograph/lib/pantograph/actions/opt_out_usage.rb +1 -1
- data/pantograph/lib/pantograph/actions/sh.rb +1 -1
- data/pantograph/lib/pantograph/actions/sonar.rb +1 -1
- data/pantograph/lib/pantograph/actions/update_pantograph.rb +1 -1
- data/pantograph/lib/pantograph/cli_tools_distributor.rb +2 -2
- data/pantograph/lib/pantograph/documentation/actions_list.rb +1 -1
- data/pantograph/lib/pantograph/documentation/docs_generator.rb +7 -2
- data/pantograph/lib/pantograph/pant_file.rb +4 -4
- data/pantograph/lib/pantograph/plugins/plugin_manager.rb +1 -1
- data/pantograph/lib/pantograph/plugins/template/README.md.erb +2 -2
- data/pantograph/lib/pantograph/plugins/template/lib/pantograph/plugin/%plugin_name%/actions/%plugin_name%_action.rb.erb +1 -1
- data/pantograph/lib/pantograph/runner.rb +1 -1
- data/pantograph/lib/pantograph/setup/setup.rb +28 -64
- data/pantograph/lib/pantograph/setup/setup_angular.rb +58 -0
- data/pantograph/lib/pantograph/setup/setup_generic.rb +58 -0
- data/pantograph/lib/pantograph/setup/setup_gradle.rb +11 -12
- data/pantograph/lib/pantograph/setup/setup_maven.rb +58 -0
- data/pantograph/lib/pantograph/version.rb +1 -1
- data/pantograph_core/lib/pantograph_core/analytics/analytics_ingester_client.rb +1 -1
- data/pantograph_core/lib/pantograph_core/analytics/analytics_session.rb +1 -1
- data/pantograph_core/lib/pantograph_core/configuration/configuration.rb +1 -1
- data/pantograph_core/lib/pantograph_core/helper.rb +1 -1
- data/pantograph_core/lib/pantograph_core/keychain_importer.rb +2 -2
- data/pantograph_core/lib/pantograph_core/module.rb +1 -1
- data/pantograph_core/lib/pantograph_core/ui/pantograph_runner.rb +2 -2
- metadata +6 -4
- data/pantograph/lib/pantograph/setup/setup_ios.rb +0 -412
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d7177f398c41a502417f9a672772b8dedb319616f064d6bcfa7676c0b2d1a5a3
|
4
|
+
data.tar.gz: b8446cb22d1bd65e02654b09af9a44e711e4178015054c66fcac09f781c39333
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: deb2c83f7f39bcd8ce248f9b732a298e8b7bf82aface23a2d0e32f537be720bafb13e5dfa7fab20aed8d0d219179aa06ea37d8ed61ffda4ebd4d543ffaf05020
|
7
|
+
data.tar.gz: 9a57635c092686e1d3f557caee8a626412dfcf440af18a395fd5b9e03cc18542b6a8bf1c61e91be736565d315fcc1f564f9739d550835bbedbfe06ee1af4aa5a
|
data/README.md
CHANGED
@@ -16,7 +16,7 @@ _pantograph_ is a tool for iOS and Android developers to automate tedious tasks
|
|
16
16
|
|
17
17
|
<hr />
|
18
18
|
<h2 align="center">
|
19
|
-
✨ All pantograph docs were moved to <a href="https://
|
19
|
+
✨ All pantograph docs were moved to <a href="https://johnknapprs.github.io/pantograph/">johnknapprs.github.io/pantograph</a> ✨
|
20
20
|
</h2>
|
21
21
|
<hr />
|
22
22
|
|
@@ -24,7 +24,7 @@ _pantograph_ is a tool for iOS and Android developers to automate tedious tasks
|
|
24
24
|
|
25
25
|
Before submitting a new GitHub issue, please make sure to
|
26
26
|
|
27
|
-
- Check out [
|
27
|
+
- Check out [johnknapprs.github.io/pantograph](https://johnknapprs.github.io/pantograph)
|
28
28
|
- Search for [existing GitHub issues](https://github.com/pantograph/pantograph/issues)
|
29
29
|
|
30
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.
|
@@ -36,131 +36,11 @@ If the above doesn't help, please [submit an issue](https://github.com/pantograp
|
|
36
36
|
<!-- This table is regenerated and resorted on each release -->
|
37
37
|
<table id='team'>
|
38
38
|
<tr>
|
39
|
-
<td id='
|
40
|
-
<a href='https://github.com/
|
41
|
-
<img src='https://github.com/
|
39
|
+
<td id='john knapp'>
|
40
|
+
<a href='https://github.com/johnknapprs'>
|
41
|
+
<img src='https://github.com/johnknapprs.png?size=140'>
|
42
42
|
</a>
|
43
|
-
<h4 align='center'><a href='https://twitter.com/
|
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>
|
43
|
+
<h4 align='center'><a href='https://twitter.com/petrosichor'>Helmut Januschka</a></h4>
|
164
44
|
</td>
|
165
45
|
</tr>
|
166
46
|
</table>
|
@@ -192,6 +72,6 @@ This project is licensed under the terms of the MIT license. See the [LICENSE](L
|
|
192
72
|
|
193
73
|
<hr />
|
194
74
|
<h2 align="center">
|
195
|
-
✨ All pantograph docs were moved to <a href="https://
|
75
|
+
✨ All pantograph docs were moved to <a href="https://johnknapprs.github.io/pantograph/">johnknapprs.github.io/pantograph</a> ✨
|
196
76
|
</h2>
|
197
77
|
<hr />
|
data/pantograph/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<h3 align="center">
|
2
|
-
<a href="https://
|
2
|
+
<a href="https://johnknapprs.github.io/pantograph/">
|
3
3
|
<img src="https://raw.githubusercontent.com/pantograph/pantograph/master/pantograph/assets/pantograph.png" width="100" />
|
4
4
|
<br />
|
5
5
|
pantograph
|
@@ -8,4 +8,4 @@
|
|
8
8
|
|
9
9
|
------
|
10
10
|
|
11
|
-
<h3 align="center">The <i>pantograph</i> docs were moved to <a href='https://
|
11
|
+
<h3 align="center">The <i>pantograph</i> docs were moved to <a href='https://johnknapprs.github.io/pantograph/'>johnknapprs.github.io/pantograph</a></h3>
|
@@ -64,7 +64,7 @@ SharedValue | Description
|
|
64
64
|
<%- next if array_item.length != 2 -%>
|
65
65
|
`SharedValues::<%= array_item[0] %>` | <%= array_item[1] %>
|
66
66
|
<%- end %>
|
67
|
-
To get more information check the [Lanes documentation](https://
|
67
|
+
To get more information check the [Lanes documentation](https://johnknapprs.github.io/pantograph/advanced/lanes/#lane-context).
|
68
68
|
<hr />
|
69
69
|
<% end %><%# End of action.output... %>
|
70
70
|
|
@@ -1,20 +1,33 @@
|
|
1
1
|
# This file contains the pantograph.tools configuration
|
2
|
-
# You can find the documentation at https://
|
2
|
+
# You can find the documentation at https://johnknapprs.github.io/pantograph
|
3
3
|
#
|
4
4
|
# For a list of all available actions, check out
|
5
5
|
#
|
6
|
-
# https://
|
6
|
+
# https://johnknapprs.github.io/pantograph/actions
|
7
7
|
#
|
8
8
|
# For a list of all available plugins, check out
|
9
9
|
#
|
10
|
-
# https://
|
10
|
+
# https://johnknapprs.github.io/pantograph/plugins/available-plugins
|
11
11
|
#
|
12
12
|
|
13
13
|
# Uncomment the line if you want pantograph to automatically update itself
|
14
14
|
# update_pantograph
|
15
15
|
|
16
|
-
|
16
|
+
before_all do |lane|
|
17
|
+
# Tasks here execute before every lane called
|
18
|
+
end
|
17
19
|
|
18
|
-
platform :ios do
|
19
20
|
[[LANES]]
|
21
|
+
|
22
|
+
after_all do |lane|
|
23
|
+
# Tasks here execute after all lanes have been completed
|
20
24
|
end
|
25
|
+
|
26
|
+
error do |_, error|
|
27
|
+
# When a lane fails the `error` lane is triggered
|
28
|
+
# Use this space to have Pantograph take action during a failure state
|
29
|
+
if is_ci?
|
30
|
+
slack(success: false, message: error)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Pantograph
|
2
2
|
class ActionCollector
|
3
3
|
def show_message
|
4
|
-
UI.message("Sending Crash/Success information. Learn more at https://
|
4
|
+
UI.message("Sending Crash/Success information. Learn more at https://johnknapprs.github.io/pantograph/#metrics")
|
5
5
|
UI.message("No personal/sensitive data is sent. Only sharing the following:")
|
6
6
|
UI.message(launches)
|
7
7
|
UI.message(@error) if @error
|
@@ -130,13 +130,13 @@ module Pantograph
|
|
130
130
|
UI.success("Successfully loaded custom action '#{file}'.") if PantographCore::Globals.verbose?
|
131
131
|
else
|
132
132
|
UI.error("Could not find method 'run' in class #{class_name}.")
|
133
|
-
UI.error('For more information, check out the docs: https://
|
133
|
+
UI.error('For more information, check out the docs: https://johnknapprs.github.io/pantograph/')
|
134
134
|
UI.user_error!("Action '#{file_name}' is damaged!", show_github_issues: true)
|
135
135
|
end
|
136
136
|
rescue NameError
|
137
137
|
# Action not found
|
138
138
|
UI.error("Could not find '#{class_name}' class defined.")
|
139
|
-
UI.error('For more information, check out the docs: https://
|
139
|
+
UI.error('For more information, check out the docs: https://johnknapprs.github.io/pantograph/')
|
140
140
|
UI.user_error!("Action '#{file_name}' is damaged!", show_github_issues: true)
|
141
141
|
end
|
142
142
|
end
|
@@ -39,7 +39,7 @@ module Pantograph
|
|
39
39
|
|
40
40
|
def self.example_code
|
41
41
|
[
|
42
|
-
'clipboard(value: "https://
|
42
|
+
'clipboard(value: "https://johnknapprs.github.io/pantograph/")',
|
43
43
|
'clipboard(value: lane_context[SharedValues::HOCKEY_DOWNLOAD_LINK] || "")'
|
44
44
|
]
|
45
45
|
end
|
@@ -16,7 +16,7 @@ module Pantograph
|
|
16
16
|
def self.details
|
17
17
|
[
|
18
18
|
"Access the pantograph lane context values.",
|
19
|
-
"More information about how the lane context works: [https://
|
19
|
+
"More information about how the lane context works: [https://johnknapprs.github.io/pantograph/advanced/#lane-context](https://johnknapprs.github.io/pantograph/advanced/#lane-context)."
|
20
20
|
].join("\n")
|
21
21
|
end
|
22
22
|
|
@@ -13,7 +13,7 @@ module Pantograph
|
|
13
13
|
def self.details
|
14
14
|
[
|
15
15
|
"By default, _pantograph_ will track what actions are being used. No personal/sensitive information is recorded.",
|
16
|
-
"Learn more at [https://
|
16
|
+
"Learn more at [https://johnknapprs.github.io/pantograph/#metrics](https://johnknapprs.github.io/pantograph/#metrics).",
|
17
17
|
"Add `opt_out_usage` at the top of your Pantfile to disable metrics collection."
|
18
18
|
].join("\n")
|
19
19
|
end
|
@@ -16,7 +16,7 @@ module Pantograph
|
|
16
16
|
def self.details
|
17
17
|
[
|
18
18
|
"Allows running an arbitrary shell command.",
|
19
|
-
"Be aware of a specific behavior of `sh` action with regard to the working directory. For details, refer to [Advanced](https://
|
19
|
+
"Be aware of a specific behavior of `sh` action with regard to the working directory. For details, refer to [Advanced](https://johnknapprs.github.io/pantograph/advanced/#directory-behavior)."
|
20
20
|
].join("\n")
|
21
21
|
end
|
22
22
|
|
@@ -50,7 +50,7 @@ module Pantograph
|
|
50
50
|
def self.details
|
51
51
|
[
|
52
52
|
"See [http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner](http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner) for details.",
|
53
|
-
"It can process unit test results if formatted as junit report as shown in [xctest](https://
|
53
|
+
"It can process unit test results if formatted as junit report as shown in [xctest](https://johnknapprs.github.io/pantograph/actions/xctest/) action. It can also integrate coverage reports in Cobertura format, which can be transformed into by the [slather](https://johnknapprs.github.io/pantograph/actions/slather/) action."
|
54
54
|
].join("\n")
|
55
55
|
end
|
56
56
|
|
@@ -31,7 +31,7 @@ module Pantograph
|
|
31
31
|
UI.important("It seems that your Gem directory is not writable by your current user.")
|
32
32
|
UI.important("pantograph would need sudo rights to update itself, however, running 'sudo pantograph' is not recommended.")
|
33
33
|
UI.important("If you still want to use this action, please read the documentation on how to set this up:")
|
34
|
-
UI.important("https://
|
34
|
+
UI.important("https://johnknapprs.github.io/pantograph/actions/update_pantograph/")
|
35
35
|
return
|
36
36
|
end
|
37
37
|
|
@@ -51,7 +51,7 @@ module Pantograph
|
|
51
51
|
|
52
52
|
# Try to check UTF-8 with `locale`, fallback to environment variables
|
53
53
|
unless utf8_locale?
|
54
|
-
warn = "WARNING: pantograph requires your locale to be set to UTF-8. To learn more go to https://
|
54
|
+
warn = "WARNING: pantograph requires your locale to be set to UTF-8. To learn more go to https://johnknapprs.github.io/pantograph/getting-started/ios/setup/#set-up-environment-variables"
|
55
55
|
UI.error(warn)
|
56
56
|
at_exit do
|
57
57
|
# Repeat warning here so users hopefully see it
|
@@ -163,7 +163,7 @@ module Pantograph
|
|
163
163
|
UI.message('')
|
164
164
|
UI.important('After creating the Gemfile and Gemfile.lock, commit those files into version control')
|
165
165
|
end
|
166
|
-
UI.important('Get started using a Gemfile for pantograph https://
|
166
|
+
UI.important('Get started using a Gemfile for pantograph https://johnknapprs.github.io/pantograph/getting-started/ios/setup/#use-a-gemfile')
|
167
167
|
end
|
168
168
|
|
169
169
|
# Returns an array of symbols for the available lanes for the Pantfile
|
@@ -68,7 +68,7 @@ module Pantograph
|
|
68
68
|
puts("==========================================\n".deprecated)
|
69
69
|
end
|
70
70
|
|
71
|
-
puts("More information can be found on https://
|
71
|
+
puts("More information can be found on https://johnknapprs.github.io/pantograph/actions/#{filter}")
|
72
72
|
puts("")
|
73
73
|
else
|
74
74
|
puts("Couldn't find action for the given filter.".red)
|
@@ -46,7 +46,7 @@ module Pantograph
|
|
46
46
|
|
47
47
|
output << "This README.md is auto-generated and will be re-generated every time [pantograph](https://pantograph.tools) is run."
|
48
48
|
output << "More information about pantograph can be found on [pantograph.tools](https://pantograph.tools)."
|
49
|
-
output << "The documentation of pantograph can be found on [
|
49
|
+
output << "The documentation of pantograph can be found on [johnknapprs.github.io/pantograph](https://johnknapprs.github.io/pantograph)."
|
50
50
|
output << ""
|
51
51
|
|
52
52
|
begin
|
@@ -71,10 +71,15 @@ module Pantograph
|
|
71
71
|
'Android'
|
72
72
|
when 'mac'
|
73
73
|
'MacOS'
|
74
|
+
when 'gradle'
|
75
|
+
'Gradle'
|
76
|
+
when 'maven'
|
77
|
+
'Maven'
|
78
|
+
when 'angular'
|
79
|
+
'Angular'
|
74
80
|
else
|
75
81
|
pl
|
76
82
|
end
|
77
|
-
|
78
83
|
end
|
79
84
|
|
80
85
|
# @param platform [String]
|
@@ -362,15 +362,15 @@ module Pantograph
|
|
362
362
|
|
363
363
|
def action_launched(action_name)
|
364
364
|
action_launch_context = PantographCore::ActionLaunchContext.context_for_action_name(action_name,
|
365
|
-
|
366
|
-
|
365
|
+
pantograph_client_language: :ruby,
|
366
|
+
args: ARGV)
|
367
367
|
PantographCore.session.action_launched(launch_context: action_launch_context)
|
368
368
|
end
|
369
369
|
|
370
370
|
def action_completed(action_name, status: nil)
|
371
371
|
completion_context = PantographCore::ActionCompletionContext.context_for_action_name(action_name,
|
372
|
-
|
373
|
-
|
372
|
+
args: ARGV,
|
373
|
+
status: status)
|
374
374
|
PantographCore.session.action_completed(completion_context: completion_context)
|
375
375
|
end
|
376
376
|
end
|
@@ -9,7 +9,7 @@ module Pantograph
|
|
9
9
|
AUTOGENERATED_LINE = "# Autogenerated by pantograph\n#\n# Ensure this file is checked in to source control!\n\n"
|
10
10
|
GEMFILE_SOURCE_LINE = "source \"https://rubygems.org\"\n"
|
11
11
|
PANTOGRAPH_PLUGIN_PREFIX = "pantograph-plugin-"
|
12
|
-
TROUBLESHOOTING_URL = "https://
|
12
|
+
TROUBLESHOOTING_URL = "https://johnknapprs.github.io/pantograph/plugins/plugins-troubleshooting/"
|
13
13
|
|
14
14
|
#####################################################
|
15
15
|
# @!group Reading the files and their paths
|
@@ -41,11 +41,11 @@ For any other issues and feedback about this plugin, please submit it to this re
|
|
41
41
|
|
42
42
|
## Troubleshooting
|
43
43
|
|
44
|
-
If you have trouble using plugins, check out the [Plugins Troubleshooting](https://
|
44
|
+
If you have trouble using plugins, check out the [Plugins Troubleshooting](https://johnknapprs.github.io/pantograph/plugins/plugins-troubleshooting/) guide.
|
45
45
|
|
46
46
|
## Using _pantograph_ Plugins
|
47
47
|
|
48
|
-
For more information about how the `pantograph` plugin system works, check out the [Plugins documentation](https://
|
48
|
+
For more information about how the `pantograph` plugin system works, check out the [Plugins documentation](https://johnknapprs.github.io/pantograph/plugins/create-plugin/).
|
49
49
|
|
50
50
|
## About _pantograph_
|
51
51
|
|
@@ -37,7 +37,7 @@ module Pantograph
|
|
37
37
|
|
38
38
|
def self.is_supported?(platform)
|
39
39
|
# Adjust this if your plugin only works for a particular platform (iOS vs. Android, for example)
|
40
|
-
# See: https://
|
40
|
+
# See: https://johnknapprs.github.io/pantograph/advanced/#control-configuration-by-lane-and-by-platform
|
41
41
|
#
|
42
42
|
# [:ios, :mac, :android].include?(platform)
|
43
43
|
true
|
@@ -171,7 +171,7 @@ module Pantograph
|
|
171
171
|
else
|
172
172
|
# So there is no plugin under that name, so just show the error message generated by the lane switch
|
173
173
|
UI.verbose(caller.join("\n"))
|
174
|
-
UI.user_error!("Could not find action, lane or variable '#{method_sym}'. Check out the documentation for more details: https://
|
174
|
+
UI.user_error!("Could not find action, lane or variable '#{method_sym}'. Check out the documentation for more details: https://johnknapprs.github.io/pantograph/actions")
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
@@ -26,7 +26,7 @@ module Pantograph
|
|
26
26
|
attr_accessor :lane_to_mention
|
27
27
|
|
28
28
|
# Start the setup process
|
29
|
-
|
29
|
+
|
30
30
|
def self.start(user: nil)
|
31
31
|
if PantographCore::PantographFolder.setup? && !Helper.test?
|
32
32
|
require 'pantograph/lane_list'
|
@@ -35,80 +35,44 @@ module Pantograph
|
|
35
35
|
UI.important("pantograph is already set up at path `#{PantographCore::PantographFolder.path}`, see the available lanes above")
|
36
36
|
UI.message("")
|
37
37
|
|
38
|
-
|
39
|
-
|
40
|
-
|
38
|
+
setup_generic = self.new
|
39
|
+
setup_generic.add_or_update_gemfile(update_gemfile_if_needed: false)
|
40
|
+
setup_generic.suggest_next_steps
|
41
41
|
return
|
42
42
|
end
|
43
43
|
|
44
44
|
# this is used by e.g. configuration.rb to not show warnings when running produce
|
45
45
|
ENV["PANTOGRAPH_ONBOARDING_IN_PROCESS"] = 1.to_s
|
46
46
|
|
47
|
-
spinner = TTY::Spinner.new(
|
47
|
+
spinner = TTY::Spinner.new('[:spinner] Looking for iOS and Gradle projects in current directory...', format: :dots)
|
48
48
|
spinner.auto_spin
|
49
49
|
|
50
|
-
maven_projects
|
51
|
-
gradle_projects
|
52
|
-
|
50
|
+
maven_projects = Dir["**/pom.xml"]
|
51
|
+
gradle_projects = Dir["**/*.gradle"] + Dir["**/*.gradle.kts"]
|
52
|
+
angular_projects = Dir['**/package.json']
|
53
53
|
spinner.success
|
54
54
|
|
55
55
|
PantographCore::PantographFolder.create_folder!
|
56
56
|
|
57
|
-
# Currently we prefer iOS app projects, as the `init` process is
|
58
|
-
# more intelligent and does more things. The user can easily add
|
59
|
-
# the `:gradle` platform to the resulting Pantfile
|
60
57
|
if maven_projects.count > 0
|
61
|
-
|
62
|
-
|
63
|
-
end
|
64
|
-
chosen_project = nil
|
65
|
-
had_multiple_projects_to_choose_from = false
|
66
|
-
|
67
|
-
if current_directory.count == 1
|
68
|
-
chosen_project = current_directory.first
|
69
|
-
elsif current_directory.count > 1
|
70
|
-
if current_directory.count == 2
|
71
|
-
# This is a common case (e.g. with CocoaPods), where the project has an xcodeproj and an xcworkspace file
|
72
|
-
extensions = [File.extname(current_directory[0]), File.extname(current_directory[1])]
|
73
|
-
if extensions.sort == [".xcodeproj", ".xcworkspace"].sort
|
74
|
-
# Yep, that's this kind of setup
|
75
|
-
chosen_project = current_directory.find { |d| d.end_with?(".xcworkspace") }
|
76
|
-
end
|
77
|
-
end
|
78
|
-
chosen_project ||= UI.select("Multiple iOS projects found in current directory", current_directory)
|
79
|
-
had_multiple_projects_to_choose_from = true
|
80
|
-
else
|
81
|
-
UI.error("It looks like there is no iOS project in the current directory, though we did find one in a sub-directory")
|
82
|
-
UI.error("Please `cd` into the directory of the intended Xcode project you wish to use.")
|
83
|
-
UI.user_error!("Please `cd` into the directory of the intended Xcode project you wish to use and run `pantograph init` again")
|
84
|
-
end
|
85
|
-
|
86
|
-
UI.message("Detected an iOS/macOS project in the current directory: '#{chosen_project}'")
|
87
|
-
|
88
|
-
SetupIos.new(
|
89
|
-
user: user,
|
90
|
-
project_path: chosen_project,
|
91
|
-
had_multiple_projects_to_choose_from: had_multiple_projects_to_choose_from
|
92
|
-
).setup_ios
|
58
|
+
UI.message('Detected an Maven project in the current directory...')
|
59
|
+
SetupMaven.new.setup_maven
|
93
60
|
elsif gradle_projects.count > 0
|
94
|
-
UI.message(
|
61
|
+
UI.message('Detected an Gradle project in the current directory...')
|
95
62
|
SetupGradle.new.setup_gradle
|
63
|
+
elsif angular_projects.count > 0
|
64
|
+
UI.message('Detected an Angular project in the current directory...')
|
65
|
+
SetupAngular.new.setup_angular
|
96
66
|
else
|
97
|
-
UI.error(
|
98
|
-
UI.error(
|
99
|
-
if UI.confirm(
|
100
|
-
|
101
|
-
user: user,
|
102
|
-
project_path: chosen_project,
|
103
|
-
had_multiple_projects_to_choose_from: had_multiple_projects_to_choose_from,
|
104
|
-
preferred_setup_method: :ios_manual
|
105
|
-
).setup_ios
|
67
|
+
UI.error('Unable to determin project type')
|
68
|
+
UI.error('Make sure to `cd` into the directory containing your application')
|
69
|
+
if UI.confirm('Alternatively, would you like to manually setup a GENERIC pantograph config in the current directory instead?')
|
70
|
+
SetupGeneric.new.setup_generic
|
106
71
|
else
|
107
|
-
UI.user_error!(
|
72
|
+
UI.user_error!('Make sure to `cd` into the directory containing your project and then use `pantograph init` again')
|
108
73
|
end
|
109
74
|
end
|
110
75
|
end
|
111
|
-
# rubocop:enable Metrics/BlockNesting
|
112
76
|
|
113
77
|
def initialize(user: nil, project_path: nil, had_multiple_projects_to_choose_from: nil, preferred_setup_method: nil)
|
114
78
|
self.user = user
|
@@ -256,20 +220,20 @@ module Pantograph
|
|
256
220
|
UI.header("Where to go from here?")
|
257
221
|
if self.platform == :gradle
|
258
222
|
UI.message("📸 Learn more about how to automatically generate localized Google Play screenshots:")
|
259
|
-
UI.message("\t\thttps://
|
223
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/screenshots/".cyan)
|
260
224
|
UI.message("👩✈️ Learn more about distribution to beta testing services:")
|
261
|
-
UI.message("\t\thttps://
|
225
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/beta-deployment/".cyan)
|
262
226
|
UI.message("🚀 Learn more about how to automate the Google Play release process:")
|
263
|
-
UI.message("\t\thttps://
|
227
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/gradle/release-deployment/".cyan)
|
264
228
|
else
|
265
229
|
UI.message("📸 Learn more about how to automatically generate localized App Store screenshots:")
|
266
|
-
UI.message("\t\thttps://
|
230
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/ios/screenshots/".cyan)
|
267
231
|
UI.message("👩✈️ Learn more about distribution to beta testing services:")
|
268
|
-
UI.message("\t\thttps://
|
232
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/ios/beta-deployment/".cyan)
|
269
233
|
UI.message("🚀 Learn more about how to automate the App Store release process:")
|
270
|
-
UI.message("\t\thttps://
|
234
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/getting-started/ios/appstore-deployment/".cyan)
|
271
235
|
UI.message("👩⚕️ Learn more about how to setup code signing with pantograph")
|
272
|
-
UI.message("\t\thttps://
|
236
|
+
UI.message("\t\thttps://johnknapprs.github.io/pantograph/codesigning/getting-started/".cyan)
|
273
237
|
end
|
274
238
|
|
275
239
|
# we crash here, so that this never happens when a new setup method is added
|
@@ -281,10 +245,10 @@ module Pantograph
|
|
281
245
|
|
282
246
|
def show_analytics_note
|
283
247
|
UI.message("pantograph will collect the number of errors for each action to detect integration issues")
|
284
|
-
UI.message("No sensitive/private information will be uploaded, more information: " + "https://
|
248
|
+
UI.message("No sensitive/private information will be uploaded, more information: " + "https://johnknapprs.github.io/pantograph/#metrics".cyan)
|
285
249
|
end
|
286
250
|
end
|
287
251
|
end
|
288
252
|
|
289
|
-
require 'pantograph/setup/
|
253
|
+
require 'pantograph/setup/setup_generic'
|
290
254
|
require 'pantograph/setup/setup_gradle'
|