afinstaller 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/lib/afinstaller/cli.rb +36 -0
- data/lib/afinstaller/installers/AF/platform.rb +57 -0
- data/lib/afinstaller/installers/AF/platformBuild.rb +75 -0
- data/lib/afinstaller/version.rb +1 -1
- data/lib/afinstaller.rb +3 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 815d0865d0e7af0301ef77e33b8280799c3dabe5
|
4
|
+
data.tar.gz: 27d54edd12ee977ef19b889a6574d8fec237a951
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8600d5df289322fbf797d8082f0eb6cf1a96f0ecc565764ce775788204fa8e591c6e4dc0daee9588c038db39d6ff7abc2ddd5928597fc3523ee3537eb1b18c3a
|
7
|
+
data.tar.gz: 8d67f12344b4518b9139285c4fda71380538dfffa377d437d26a1bb877f4b7f73b2a793a3a74e0ade694181468c984c56142779c0691951e838dfb8efe50986d
|
data/lib/afinstaller/cli.rb
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
require 'thor'
|
2
2
|
require 'afinstaller'
|
3
3
|
require 'afinstaller/installers/Errors/error'
|
4
|
+
|
4
5
|
require 'afinstaller/installers/iOS/iOS'
|
5
6
|
require 'afinstaller/installers/iOS/iOSBuild'
|
6
7
|
require 'afinstaller/installers/Android/android'
|
7
8
|
require 'afinstaller/installers/Android/androidBuild'
|
9
|
+
|
10
|
+
require 'afinstaller/installers/AF/platform'
|
8
11
|
require 'afinstaller/installers/Resi/platform'
|
12
|
+
require 'afinstaller/installers/AF/platformBuild'
|
9
13
|
require 'afinstaller/installers/Resi/platformBuild'
|
10
14
|
|
15
|
+
|
11
16
|
def system!(*args)
|
12
17
|
system(*args) || abort(''+red('\n== Command #{args} failed =="')+'')
|
13
18
|
end
|
@@ -116,6 +121,37 @@ module Afinstaller
|
|
116
121
|
end
|
117
122
|
end
|
118
123
|
|
124
|
+
|
125
|
+
method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
|
126
|
+
desc "AF [Platform] [Version]", "CLI Installer for AF VS"
|
127
|
+
long_desc <<-LONGDESC
|
128
|
+
`afinstaller AF [Platform] [version]` will clone the AF VS [Platform] repo with the version you speicify. It will finally
|
129
|
+
open the project folder after it finishes setting up dependencies.
|
130
|
+
|
131
|
+
Android:
|
132
|
+
You can optionally specify the build flag [-b], which will attempt to run Gradle Clean.
|
133
|
+
This requires Java 8.0 and above.
|
134
|
+
|
135
|
+
iOS:
|
136
|
+
You can optionall specify the build flag [-b], which will attempt to run pod install.
|
137
|
+
This requires cocoapods to be installed. `sudo gem install cocoapods`.
|
138
|
+
|
139
|
+
> $ afinstaller AF [Platofrm] 4.5.0 -b
|
140
|
+
LONGDESC
|
141
|
+
def AF(platform, version)
|
142
|
+
build_project = options[:build]
|
143
|
+
if platform.downcase == "ios" || platform.downcase == "android"
|
144
|
+
if build_project
|
145
|
+
Afinstaller::Installers::AFPlatformBuild.start([version, platform])
|
146
|
+
else
|
147
|
+
Afinstaller::Installers::AFPlatform.start([version, platform])
|
148
|
+
end
|
149
|
+
else
|
150
|
+
error = "Incorrect Platform selected. Please try afinstaller AF iOS [version]"
|
151
|
+
Afinstaller::Installers::Error.start([error])
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
119
155
|
# Add support for Kiosk
|
120
156
|
# method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
|
121
157
|
# desc "Kiosk [Version]", "CLI Installer for PW Kiosk Template"
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
require 'pathname'
|
3
|
+
require 'fileutils'
|
4
|
+
include FileUtils
|
5
|
+
|
6
|
+
module Afinstaller
|
7
|
+
module Installers
|
8
|
+
class AFPlatform < Thor::Group
|
9
|
+
argument :version, :type => :string
|
10
|
+
argument :platform, :type => :string
|
11
|
+
include Thor::Actions
|
12
|
+
|
13
|
+
def self.source_root
|
14
|
+
File.dirname(__FILE__)
|
15
|
+
end
|
16
|
+
|
17
|
+
def clone_command
|
18
|
+
v = "#{version}"
|
19
|
+
plat = "#{platform}"
|
20
|
+
|
21
|
+
# Create directory and change directory into created dir.
|
22
|
+
FileUtils::mkdir "AF-#{version}-#{plat}" unless File.exists?("AF-#{version}-#{plat}")
|
23
|
+
FileUtils.cd("AF-#{version}-#{plat}", :verbose => false)
|
24
|
+
puts Rainbow("== Cloning Repo ==").cyan
|
25
|
+
if platform.downcase == "ios"
|
26
|
+
system! 'git clone -b release/v'+v+' ssh://git@bitbucket.phunware.com:7999/af/af-template-ios.git' unless File.exist?('af-template-ios')
|
27
|
+
else
|
28
|
+
system! 'git clone -b v'+v+' ssh://git@bitbucket.phunware.com:7999/af/af-template-android.git' unless File.exist?('af-template-android')
|
29
|
+
end
|
30
|
+
puts Rainbow("== Cloning Succeeded ==").magenta
|
31
|
+
end
|
32
|
+
|
33
|
+
def dependency_install_command
|
34
|
+
puts Rainbow("== Moving to project folder ==").cyan
|
35
|
+
|
36
|
+
if platform.downcase == "ios"
|
37
|
+
FileUtils.cd('af-template-ios', :verbose => false)
|
38
|
+
puts Rainbow("== Folder is now af-template-ios ==").magenta
|
39
|
+
|
40
|
+
puts Rainbow("== Attempting to run pod install ==").cyan
|
41
|
+
system! 'pod install'
|
42
|
+
puts Rainbow("== Cocoapod installation completed ==").magenta
|
43
|
+
else
|
44
|
+
FileUtils.cd('af-template-android', :verbose => false)
|
45
|
+
puts Rainbow("== Folder is now af-template-android ==").magenta
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def open_project_folder
|
50
|
+
puts Rainbow("== Open project folder ==").cyan
|
51
|
+
system! 'open .'
|
52
|
+
puts Rainbow("== AF Installer process completed. Thank you ==").magenta
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module Afinstaller
|
2
|
+
module Installers
|
3
|
+
class AFPlatformBuild < Thor::Group
|
4
|
+
argument :version, :type => :string
|
5
|
+
argument :platform, :type => :string
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.dirname(__FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
def clone_command
|
13
|
+
v = "#{version}"
|
14
|
+
plat = "#{platform}"
|
15
|
+
|
16
|
+
# Create directory and change directory into created dir.
|
17
|
+
FileUtils::mkdir "AF-#{version}-#{plat}" unless File.exists?("AF-#{version}-#{plat}")
|
18
|
+
FileUtils.cd("AF-#{version}-#{plat}", :verbose => false)
|
19
|
+
puts Rainbow("== Cloning Repo ==").cyan
|
20
|
+
if platform.downcase == "ios"
|
21
|
+
system! 'git clone -b release/v'+v+' ssh://git@bitbucket.phunware.com:7999/af/af-template-ios.git' unless File.exist?('af-template-ios')
|
22
|
+
else
|
23
|
+
system! 'git clone -b v'+v+' ssh://git@bitbucket.phunware.com:7999/af/af-template-android.git' unless File.exist?('af-template-android')
|
24
|
+
end
|
25
|
+
puts Rainbow("== Cloning Succeeded ==").magenta
|
26
|
+
end
|
27
|
+
|
28
|
+
def dependency_install_command
|
29
|
+
puts Rainbow("== Moving to project folder ==").cyan
|
30
|
+
|
31
|
+
if platform.downcase == "ios"
|
32
|
+
FileUtils.cd('af-template-ios', :verbose => false)
|
33
|
+
puts Rainbow("== Folder is now af-template-ios ==").magenta
|
34
|
+
|
35
|
+
puts Rainbow("== Attempting to run pod install ==").cyan
|
36
|
+
system! 'pod install'
|
37
|
+
puts Rainbow("== Cocoapod installation completed ==").magenta
|
38
|
+
else
|
39
|
+
FileUtils.cd('af-template-android', :verbose => false)
|
40
|
+
puts Rainbow("== Folder is now af-template-android ==").magenta
|
41
|
+
puts Rainbow("== Attempting Gradle Clean ==").cyan
|
42
|
+
system! './gradlew clean :app:assembleDebug --parallel --daemon --configure-on-demand -PminSdk=21'
|
43
|
+
puts Rainbow("== Gradle successful ==").magenta
|
44
|
+
end
|
45
|
+
|
46
|
+
rescue NoMethodError => e
|
47
|
+
puts Rainbow("== Something went wrong. Please try again. ==").red
|
48
|
+
exit 1
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def build_attmept
|
53
|
+
puts Rainbow("== Attempting to build project ==").cyan
|
54
|
+
if platform.downcase == "ios"
|
55
|
+
system! 'xcodebuild -scheme GenericAF4 -workspace GenericAF4.xcworkspace/ -sdk iphonesimulator build | xcpretty'
|
56
|
+
else
|
57
|
+
system! 'adb install -r app/build/outputs/apk/app-$1-debug.apk'
|
58
|
+
system! 'adb shell monkey -p com.phunware.appframework.sample.generic_template.$1 -c android.intent.category.LAUNCHER 1'
|
59
|
+
end
|
60
|
+
puts Rainbow("== Project built successfully ==").magenta
|
61
|
+
|
62
|
+
rescue NoMethodError => e
|
63
|
+
puts Rainbow("== Something went wrong. Please try again. ==").red
|
64
|
+
exit 1
|
65
|
+
end
|
66
|
+
|
67
|
+
def open_project_folder
|
68
|
+
puts Rainbow("== Open project folder ==").cyan
|
69
|
+
system! 'open .'
|
70
|
+
puts Rainbow("== AF Installer process completed. Thank you ==").magenta
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/lib/afinstaller/version.rb
CHANGED
data/lib/afinstaller.rb
CHANGED
@@ -4,7 +4,10 @@ require 'afinstaller/installers/Errors/error'
|
|
4
4
|
require 'afinstaller/installers/iOS/iOSBuild'
|
5
5
|
require 'afinstaller/installers/Android/android'
|
6
6
|
require 'afinstaller/installers/Android/androidBuild'
|
7
|
+
|
8
|
+
require 'afinstaller/installers/AF/platform'
|
7
9
|
require 'afinstaller/installers/Resi/platform'
|
10
|
+
require 'afinstaller/installers/AF/platformBuild'
|
8
11
|
require 'afinstaller/installers/Resi/platformBuild'
|
9
12
|
|
10
13
|
module Afinstaller
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: afinstaller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabe Morales
|
@@ -162,6 +162,8 @@ files:
|
|
162
162
|
- features/support/setup.rb
|
163
163
|
- lib/afinstaller.rb
|
164
164
|
- lib/afinstaller/cli.rb
|
165
|
+
- lib/afinstaller/installers/AF/platform.rb
|
166
|
+
- lib/afinstaller/installers/AF/platformBuild.rb
|
165
167
|
- lib/afinstaller/installers/Android/android.rb
|
166
168
|
- lib/afinstaller/installers/Android/androidBuild.rb
|
167
169
|
- lib/afinstaller/installers/Errors/error.rb
|