afinstaller 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: beb225377c00d60a5f2add8c7748f6e3224b4805
4
- data.tar.gz: a8844e99d429b18fc57dc29a47b9423116c2c11e
3
+ metadata.gz: d799405716de00afc9790f019d84d48ed1ccefd2
4
+ data.tar.gz: 95b35f4494afe58ebbb314c9049e36a71d5b9e2c
5
5
  SHA512:
6
- metadata.gz: ef2626ac03a035e58296c40976155fdbed21cd424d64b98e2669d008bb2322ac55e7550fd6164815f09baa3afb61a2aaa78e487fd8dc9d3e6d219a0579e1d335
7
- data.tar.gz: 432b98484c6411b69c3ed09cde3a2b7b78ad618513bc15a7f37e36fe2e1ff3016dac10d78b7c154a6508eb18b8bcb809e827ab3964dbb678aa11b262a9419265
6
+ metadata.gz: dd088ee1e498d922111b10442e529d46a3f2f2a6c70e7dfeba21b60896f338e15ed8d8bb748cdb74a7305102078fb129795283f702c142f294d6522c8274de78
7
+ data.tar.gz: ef58b36901b53b8cf5ffb713e44d40b66b6e9f106ae975eae2f90ba09384135158e595c6d649b1b69670610ef5ffbf44b285944511096c31002c51024fd4d136
data/README.md CHANGED
@@ -1,38 +1,60 @@
1
- # Afinstaller
1
+ # AFInstaller
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/afinstaller`. To experiment with that code, run `bin/console` for an interactive prompt.
3
+ AFInstaller is a tool that will clone and install AF projects.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
5
+ ## Requirements:
6
+ - Ruby 2.0.0 or above.
7
+ - RubyGems 2.0.0 or above
8
+
9
+ This gems assumes that you have general knowledge of Ruby, have a ruby manager (rvm or rbenv) or possibly already using homebrew.
6
10
 
7
11
  ## Installation
12
+ Run the following command on your terminal:
8
13
 
9
- Add this line to your application's Gemfile:
14
+ $ gem install afinstaller
10
15
 
11
- ```ruby
12
- gem 'afinstaller'
13
- ```
16
+ ## Usage
14
17
 
15
- And then execute:
18
+ ### Flags
19
+ [Optional Flags] : -b
20
+ -b represents --build
16
21
 
17
- $ bundle
22
+ ### Help
23
+ $ afinstaller - This will show all available commands
18
24
 
19
- Or install it yourself as:
25
+ $ afinstaller help [Platform] will show available commands for iOS
20
26
 
21
- $ gem install afinstaller
27
+ ### iOS
28
+ $ afinstaller iOS [Version] will clone an AF 4.5.0 project, run pod install and open the project folder window.
22
29
 
23
- ## Usage
30
+ $ afinstaller iOS [version] -b will do the same as above, but will to a test build via xcodebuild after pod install.
31
+
32
+ ### Android
33
+ $ afinstaller Android [version] will clone an AF 4.5.0 project and open the proejct folder window.
34
+
35
+ $ afinstaller Android [version] -b will do the same as above, but will also ran Gradle Clean in your terminal.
36
+
37
+
38
+ ## Known Issues
39
+ - Using ZSH for your bash.
40
+
41
+ Possible Solutions:
42
+
43
+ [StackOverflow](https://stackoverflow.com/questions/14607193/installing-gem-or-updating-rubygems-fails-with-permissions-error)
24
44
 
25
- TODO: Write usage instructions here
45
+ ## Found a bug?
46
+ Report it here: [New Issues](https://github.com/gmorales-phunware/afinstaller/issues/new)
26
47
 
27
48
  ## Development
28
49
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
50
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec cucumber feature` to run the tests.
30
51
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
52
+ To install this gem onto your local machine, run `bundle exec rake install`.
53
+ To release a new version, submit a pull request. Once approved, I will push an update.
32
54
 
33
55
  ## Contributing
34
56
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/gabemdev/afinstaller. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
57
+ Bug reports and pull requests are welcome on [GitHub](https://github.com/gmorales-phunware/afinstaller). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
36
58
 
37
59
  ## License
38
60
 
@@ -40,4 +62,4 @@ The gem is available as open source under the terms of the [MIT License](http://
40
62
 
41
63
  ## Code of Conduct
42
64
 
43
- Everyone interacting in the Afinstaller project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/gabemdev/afinstaller/blob/master/CODE_OF_CONDUCT.md).
65
+ Everyone interacting in the AFInstaller project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/gmorales-phunware/afinstaller/blob/master/CODE_OF_CONDUCT.md).
@@ -5,6 +5,8 @@ require 'afinstaller/installers/iOS/iOS'
5
5
  require 'afinstaller/installers/iOS/iOSBuild'
6
6
  require 'afinstaller/installers/Android/android'
7
7
  require 'afinstaller/installers/Android/androidBuild'
8
+ require 'afinstaller/installers/Resi/platform'
9
+ require 'afinstaller/installers/Resi/platformBuild'
8
10
 
9
11
  def system!(*args)
10
12
  system(*args) || abort(''+red('\n== Command #{args} failed =="')+'')
@@ -16,13 +18,20 @@ module Afinstaller
16
18
  def self.exit_on_failure?
17
19
  true
18
20
  end
19
- method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
20
21
 
22
+ # iOS AF
23
+ method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
21
24
  desc "iOS [version]", "CLI Installer for AF iOS "
22
25
  long_desc <<-LONGDESC
23
26
  `afinstaller iOS [version]` will clone the AF iOS repo with the version you specify. It will then run `pod install`,
24
27
  it will finally open the project folder.
25
28
 
29
+ * Note: This command utilizes the repo branch due to tag versioning not being up to date. If you get an error due to
30
+ a branch not being found or incorrect, please try an earlier version or contact someone in the AF team to add the branch
31
+ to the repo.
32
+
33
+ ** For this same reason, master or develop branches are not supported.
34
+
26
35
  You can optionally specify the build flag [-b], which will build your project after cocoapod installation
27
36
 
28
37
  > $ afinstaller iOS 4.5.0 -b
@@ -30,8 +39,13 @@ module Afinstaller
30
39
  def iOS(version)
31
40
  build_project = options[:build]
32
41
  if version == "help"
33
- error = "Incorrect comment. Please try afinstaller help iOS"
42
+ error = "Incorrect command. Please try afinstaller help iOS"
43
+ Afinstaller::Installers::Error.start([error])
44
+
45
+ elsif version.downcase == "master" || version.downcase == "develop"
46
+ error = "Current branch is not supported. Please try a valid release branch. ie 4.5.0"
34
47
  Afinstaller::Installers::Error.start([error])
48
+
35
49
  end
36
50
 
37
51
  if build_project
@@ -41,12 +55,16 @@ module Afinstaller
41
55
  end
42
56
  end
43
57
 
58
+ # Android AF
44
59
  method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
45
60
  desc "Android [version]", "CLI Installer for AF Android "
46
61
  long_desc <<-LONGDESC
47
62
  `afinstaller Android [version]` will clone the AF Android repo with the version you specify. It will it will
48
63
  finally open the project folder.
49
64
 
65
+ * Note: This command uses the repo tags. If you get an error due to a tag not found during cloning, please try an
66
+ ealier version or contact somoene in the AF team to add the tag to the repo.
67
+
50
68
  You can optionally specify the build flag [-b], which will attempt to run Gradle Clean.
51
69
  This requires Java 8.0 and above.
52
70
 
@@ -58,7 +76,7 @@ module Afinstaller
58
76
  error = "Incorrect comment. Please try afinstaller help iOS"
59
77
  Afinstaller::Installers::Error.start([error])
60
78
  end
61
-
79
+
62
80
  if build_project
63
81
  Afinstaller::Installers::AndroidBuild.start([version])
64
82
  else
@@ -66,5 +84,44 @@ module Afinstaller
66
84
  end
67
85
  end
68
86
 
87
+ # Residential Project
88
+ # Single Command for both platforms.
89
+ method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
90
+ desc "Resi [Platform] [Version]", "CLI Installer for AF Resi"
91
+ long_desc <<-LONGDESC
92
+ `afinstaller Resi [platform] [version]` will clone the AF Resi [Platform] repo with the version you specify. It will it will
93
+ finally open the project folder.
94
+
95
+ Android:
96
+ You can optionally specify the build flag [-b], which will attempt to run Gradle Clean.
97
+ This requires Java 8.0 and above.
98
+
99
+ iOS:
100
+ You can optionally specify the build flag [-b], which will attmept to run pod install.
101
+ This requires cocoapods to be installed. `sudo gem install cocoapods`
102
+
103
+ > $ afinstaller Resi [Platform] 4.5.0 -b
104
+ LONGDESC
105
+ def Resi(platform, version)
106
+ build_project = options[:build]
107
+ if platform.downcase == "ios" || platform.downcase == "android"
108
+ if build_project
109
+ Afinstaller::Installers::ResiPlatformBuild.start([version, platform])
110
+ else
111
+ Afinstaller::Installers::ResiPlatform.start([version, platform])
112
+ end
113
+ else
114
+ error = "Incorrect Platform. Please try afinstaller Resi iOS [version]"
115
+ Afinstaller::Installers::Error.start([error])
116
+ end
117
+ end
118
+
119
+ # Add support for Kiosk
120
+ # method_option :build, :aliases => "-b", :desc => "Build project after cloning repo."
121
+ # desc "Kiosk [Version]", "CLI Installer for PW Kiosk Template"
122
+ # def Kiosk(version)
123
+ # build_project = options[:build]
124
+ # end
125
+
69
126
  end
70
127
  end
@@ -25,6 +25,10 @@ module Afinstaller
25
25
  puts Rainbow("== Attempting Gradle Clean ==").cyan
26
26
  system! './gradlew clean :app:assemble$1Debug --parallel --daemon --configure-on-demand -PminSdk=21'
27
27
  puts Rainbow("== Gradle successful ==").magenta
28
+
29
+ rescue NoMethodError => e
30
+ puts Rainbow("== Gradle Failed Check your settings. ==").red
31
+ exit 1
28
32
  end
29
33
 
30
34
  def open_project_folder
@@ -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 ResiPlatform < 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-Resi-#{version}-#{plat}" unless File.exists?("AF-Resi-#{version}-#{plat}")
23
+ FileUtils.cd("AF-Resi-#{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/resi/resi-template-ios.git' unless File.exist?('resi-template-ios')
27
+ else
28
+ system! 'git clone -b v'+v+' ssh://git@bitbucket.phunware.com:7999/resi/resi-template-android.git' unless File.exist?('resi-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('resi-template-ios', :verbose => false)
38
+ puts Rainbow("== Folder is now resi-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('resi-template-android', :verbose => false)
45
+ puts Rainbow("== Folder is now resi-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 ResiPlatformBuild < 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-Resi-#{version}-#{plat}" unless File.exists?("AF-Resi-#{version}-#{plat}")
18
+ FileUtils.cd("AF-Resi-#{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/resi/resi-template-ios.git' unless File.exist?('resi-template-ios')
22
+ else
23
+ system! 'git clone -b v'+v+' ssh://git@bitbucket.phunware.com:7999/resi/resi-template-android.git' unless File.exist?('resi-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('resi-template-ios', :verbose => false)
33
+ puts Rainbow("== Folder is now resi-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('resi-template-android', :verbose => false)
40
+ puts Rainbow("== Folder is now resi-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 GenericRESI -workspace GenericRESI.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
@@ -30,6 +30,10 @@ module Afinstaller
30
30
  puts Rainbow("== Attempting to run pod install ==").cyan
31
31
  system! 'pod install'
32
32
  puts Rainbow("== Cocoapod installation completed ==").magenta
33
+
34
+ rescue NoMethodError => e
35
+ puts Rainbow("== Something went wrong. Please try again. ==").red
36
+ exit 1
33
37
  end
34
38
 
35
39
  def open_project_folder
@@ -25,6 +25,10 @@ module Afinstaller
25
25
  puts Rainbow("== Attempting to run pod install ==").cyan
26
26
  system! 'pod install'
27
27
  puts Rainbow("== Cocoapod installation completed ==").magenta
28
+
29
+ rescue NoMethodError => e
30
+ puts Rainbow("== Something went wrong. Please try again. ==").red
31
+ exit 1
28
32
  end
29
33
 
30
34
  def build_attmept
@@ -1,3 +1,3 @@
1
1
  module Afinstaller
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/lib/afinstaller.rb CHANGED
@@ -4,6 +4,8 @@ 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
+ require 'afinstaller/installers/Resi/platform'
8
+ require 'afinstaller/installers/Resi/platformBuild'
7
9
 
8
10
  module Afinstaller
9
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: afinstaller
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabe Morales
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-20 00:00:00.000000000 Z
11
+ date: 2017-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -165,6 +165,8 @@ files:
165
165
  - lib/afinstaller/installers/Android/android.rb
166
166
  - lib/afinstaller/installers/Android/androidBuild.rb
167
167
  - lib/afinstaller/installers/Errors/error.rb
168
+ - lib/afinstaller/installers/Resi/platform.rb
169
+ - lib/afinstaller/installers/Resi/platformBuild.rb
168
170
  - lib/afinstaller/installers/iOS/ios.rb
169
171
  - lib/afinstaller/installers/iOS/iosBuild.rb
170
172
  - lib/afinstaller/ios.rb