lasertag 0.2.1 → 0.3.0

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: 3cba8453f70d25300d93b0ed7bd38091d6eb58d0
4
- data.tar.gz: 31b59dc849797a5060b2e5fab8204db60c38f286
3
+ metadata.gz: 9426e016e328362a09deadd681d53319d2ad8a6e
4
+ data.tar.gz: c6035f6b106dee761e40e24f891314e1d2c8c46b
5
5
  SHA512:
6
- metadata.gz: 9a746042144bb40e3ff59c5ee40a5445ac21a9556e37d7894b244220c674f2e7069ebe83af25c971a0d02cf7cbaf59164395d7ffb4b6b6c0556a642624133908
7
- data.tar.gz: 1ea63e8dc865466aa6ee5d1db68a8e7667ddc0d46a4e2668ec6caa48bd164223ebf9ab0a61632dfc3b01bb8f9491b1260050e3cb47b7e5976f73bf6c8d31bff1
6
+ metadata.gz: a8823d5eec834807eb5e451acb0cf40cf290e136f5723ecfbe8ffd7e5642bd2238d0880e8d69f2c21c192af2a93981d265b9518e119ae2beea53a6ea7612b628
7
+ data.tar.gz: 0380b6e3b4a54ebd027970b71629a18643870373861a69d94c5eb4d65ca9a416ef941258e8f2e843c83dc0004ae87dfc1f28412fbe626db060f4f0bc558aa051
data/.rspec ADDED
@@ -0,0 +1,5 @@
1
+ --require spec_helper
2
+ --tty
3
+ --color
4
+ --format documentation
5
+ --format html -o "tmp/rspec_result.html"
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ sudo: false
3
+ rvm:
4
+ - 2.2.1
5
+ - 2.0.0
data/README.md CHANGED
@@ -1,21 +1,37 @@
1
1
  # Lasertag
2
+ [![Gem Version](https://badge.fury.io/rb/lasertag.svg)](https://badge.fury.io/rb/lasertag) [![Build Status](https://travis-ci.org/cesarferreira/lasertag.svg?branch=master)](https://travis-ci.org/cesarferreira/lasertag) [![security](https://hakiri.io/github/cesarferreira/lasertag/master.svg)](https://hakiri.io/github/cesarferreira/lasertag/master) [![Code Climate](https://codeclimate.com/github/cesarferreira/lasertag/badges/gpa.svg)](https://codeclimate.com/github/cesarferreira/lasertag) [![Inline docs](http://inch-ci.org/github/cesarferreira/lasertag.svg?branch=master)](http://inch-ci.org/github/cesarferreira/lasertag)
2
3
 
3
- Match your CVS tags with the android versions in laser speed!
4
+ > Like most VCSs, Git has the ability to tag specific points in history as being important. Typically people use this functionality to mark release points (v1.0.0, and so on)
4
5
 
6
+ <!-- Match your CVS tags with your android versions with laser speed! -->
5
7
 
6
- ## Usage
8
+ <p align="center">
9
+ <img src="https://raw.githubusercontent.com/cesarferreira/lasertag/master/extras/terminal.gif" width="100%" />
10
+ </p>
7
11
 
8
- $ lasertag -m app
9
12
 
10
- If you want to specify a flavour:
13
+ ## Basic Usage
11
14
 
12
- $ lasertag --module app --flavour prod
15
+ $ lasertag --module [module_name]
16
+
17
+ #### Going deeper
18
+
19
+ If you want to specify a flavor:
20
+
21
+ $ lasertag --module app --flavor prod
13
22
 
14
23
 
15
24
  ## Installation
16
25
 
17
26
  $ gem install lasertag
18
27
 
28
+ ## Under the hood
29
+
30
+ - Tries to compile the project
31
+ - Find out the package and the app version
32
+ - executes git tag -a v[tag_version] -m "tag [tag_name]"
33
+ - executes git push origin [tag_name]
34
+
19
35
 
20
36
  ## License
21
37
 
Binary file
data/lasertag.gemspec CHANGED
@@ -14,8 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.authors = ["cesarferreira"]
15
15
  spec.email = ["cesar.manuel.ferreira@gmail.com"]
16
16
 
17
- spec.summary = %q{Match your CVS tags with the android versions in laser speed!}
18
- spec.description = %q{Match your CVS tags with the android versions in laser speed!}
17
+ spec.summary = %q{Automatically map android app version to git tags}
18
+ spec.description = %q{Automatically map android app version to git tags}
19
19
  spec.homepage = "https://github.com/cesarferreira/lasertag"
20
20
  spec.license = "MIT"
21
21
 
@@ -33,6 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'bundler', '~> 1.7'
34
34
  spec.add_dependency 'colorize', '~> 0.7'
35
35
  spec.add_dependency 'oga', '~> 1.3.1'
36
- spec.add_dependency 'hirb'
36
+ spec.add_dependency 'git', '~> 1.2'
37
37
 
38
38
  end
data/lib/lasertag.rb CHANGED
@@ -1,9 +1,8 @@
1
1
  require 'optparse'
2
2
  require 'colorize'
3
- require 'hirb'
4
3
  require 'oga'
5
4
  require 'lasertag/version'
6
- require 'pry'
5
+ require 'git'
7
6
 
8
7
  module Lasertag
9
8
  class MainApp
@@ -12,7 +11,7 @@ module Lasertag
12
11
  # defaults
13
12
  @app_path = Dir.pwd
14
13
  @app_module = nil
15
- @app_flavour = nil
14
+ @app_flavor = nil
16
15
 
17
16
  @require_analyses = true
18
17
 
@@ -31,16 +30,16 @@ module Lasertag
31
30
  opts.separator ''
32
31
  opts.separator "Options"
33
32
 
34
- opts.on('-p PATH', '--path PATH', 'Custom path to android project') do |app_path|
35
- @app_path = app_path if @app_path != '.'
33
+ opts.on('-m', '--module MODULE', 'Specifies the app module') do |app_module|
34
+ @app_module = app_module
36
35
  end
37
36
 
38
- opts.on('-f', '--flavour FLAVOUR', 'Specifies the flavour (e.g. dev, qa, prod)') do |app_flavour|
39
- @app_flavour = app_flavour
37
+ opts.on('-f', '--flavor FLAVOR', 'Specifies the flavor (e.g. dev, qa, prod)') do |app_flavor|
38
+ @app_flavor = app_flavor
40
39
  end
41
40
 
42
- opts.on('-m', '--module MODULE', 'Specifies the app module') do |app_module|
43
- @app_module = app_module
41
+ opts.on('-p PATH', '--path PATH', 'Custom path to android project') do |app_path|
42
+ @app_path = app_path if @app_path != '.'
44
43
  end
45
44
 
46
45
  opts.on('-h', '--help', 'Displays help') do
@@ -74,10 +73,6 @@ module Lasertag
74
73
  # end
75
74
  end
76
75
 
77
- if @clear_flag
78
- android_project.clear_app_data
79
- end
80
-
81
76
  unless @app_module
82
77
  puts "Please give me an app module name".yellow
83
78
  exit 1
@@ -91,8 +86,19 @@ module Lasertag
91
86
 
92
87
  Dir.chdir @app_path
93
88
 
89
+ ### dont let uncommited stuffgit commit
90
+ if has_uncommited_code
91
+ puts "You have uncommited code, please commit it first".red
92
+ exit 1
93
+ end
94
+
94
95
  ### Assemble
95
- system assemble_command
96
+ is_success = system assemble_command
97
+
98
+ unless is_success
99
+ puts "\n\nSomething went wrong so I stopped all the madness!!\n".red
100
+ exit 1
101
+ end
96
102
 
97
103
  ### Get project properties
98
104
  @hash = project_properties @app_module
@@ -102,24 +108,66 @@ module Lasertag
102
108
  ### Find app info
103
109
  app_info = get_app_info
104
110
 
105
- puts "For package #{app_info[:package].green}"
111
+ puts "For package #{app_info[:package].yellow}\n"
106
112
 
107
- ### dont let uncommited stuffgit commit
113
+ ### git tag -a "versionNumber" -m "versionName"
108
114
 
115
+ package = app_info[:package]
116
+ name = @app_module # not quite correct
117
+ version = app_info[:versionName]
118
+
119
+ builded = "#{@app_module}/build/outputs/apk/#{@app_module}#{"-#{@app_flavor}" if @app_flavor}-release-unsigned.apk"
120
+
121
+ puts "#{name} #{version} built to #{builded}.".green
122
+
123
+ tag_code "v#{version}"
124
+ puts "Tagged v#{version}.".green
125
+
126
+ #$ git push origin v1.5
127
+ push_tag "v#{version}"
128
+
129
+ puts "Pushed git commits and tags.".green
130
+ puts "Pushed #{name} #{version} to remote.".green
131
+
132
+ end
109
133
 
110
- ### git tag -a "versionNumber" -m "versionName"
111
134
 
112
- version = "v#{app_info[:versionName]}"
113
- tag = "git tag -a #{version} -m 'versionCode: #{app_info[:versionCode]}'"
135
+ ### HAS UNCOMMITED CODE?
136
+ def has_uncommited_code
137
+ g = Git.open(Dir.pwd)
138
+ g.status.changed.size > 0
139
+ end
114
140
 
115
- puts "Trying to tag #{version}...".yellow
141
+ ### PUSH TAG
142
+ def push_tag(version)
143
+ g = Git.open(Dir.pwd)
144
+ begin
145
+ g.push(g.remote('origin'), version)
146
+ rescue Exception => e
147
+ puts "Can't push tag\n reason: #{e.to_s.red}"
148
+ exit 1
149
+ end
150
+ end
116
151
 
117
- puts "Tagged #{version}\n".green
118
152
 
153
+ ### TAG CODE
154
+ def tag_code(version)
155
+ g = Git.open(Dir.pwd)
156
+ begin
157
+ g.add_tag(version)
158
+ rescue Exception => e
159
+ expected = "'#{version}' already exists"
160
+ if e.to_s.include? expected
161
+ puts "Error ocurred: #{expected.red}"
162
+ else
163
+ puts "Can't tag the code\n reason: #{e.to_s.red}"
164
+ end
119
165
 
120
- ### git push --tags
166
+ exit 1
167
+ end
121
168
  end
122
169
 
170
+ ### IS THE ANDROID HOME DEFINED?
123
171
  def android_home_is_defined
124
172
  sdk = `echo $ANDROID_HOME`.gsub("\n",'')
125
173
  !sdk.empty?
@@ -142,8 +190,7 @@ module Lasertag
142
190
  File.exist?(settings_path)
143
191
  end
144
192
 
145
- ##############
146
-
193
+ #########################################################
147
194
 
148
195
  def convert_values_to_hash (str)
149
196
  hash = Hash.new
@@ -167,9 +214,7 @@ module Lasertag
167
214
  project = "#{project}:" if project
168
215
 
169
216
  result = %x[gradle #{project}properties]
170
- hash = convert_values_to_hash result
171
- #puts Hirb::Helpers::AutoTable.render(hash)
172
- hash
217
+ convert_values_to_hash result
173
218
  end
174
219
 
175
220
 
@@ -179,9 +224,6 @@ module Lasertag
179
224
 
180
225
  parser = Oga.parse_xml(handle)
181
226
 
182
- # package="com.cesarferreira.testout"
183
- # versionCode="10000"
184
- # versionName="1.0.0"
185
227
  package = parser.xpath("//manifest").attr('package').last.value
186
228
  versionCode = parser.xpath("//manifest").attr('android:versionCode').last.value
187
229
  versionName = parser.xpath("//manifest").attr('android:versionName').last.value
@@ -196,7 +238,7 @@ module Lasertag
196
238
  def get_path_to_merged_manifest
197
239
  build_dir = @hash['buildDir']
198
240
 
199
- flavor = @app_flavour ? "/#{@app_flavour}/" : "/"
241
+ flavor = @app_flavor ? "/#{@app_flavor}/" : "/"
200
242
 
201
243
  path = "#{build_dir}/intermediates/manifests/full"
202
244
  path = "#{path}#{flavor}release/"
@@ -206,8 +248,9 @@ module Lasertag
206
248
  exists = File.exist?(full_path)
207
249
 
208
250
  unless exists
209
- puts "#{full_path.red} could not be found"
210
- puts "Try specifying a Flavor".yellow
251
+ puts "The merged manifest could not be found\n"
252
+ puts " Try specifying a Flavor\n".green
253
+ system("lasertag -h")
211
254
  exit 1
212
255
  end
213
256
 
@@ -216,7 +259,7 @@ module Lasertag
216
259
  end
217
260
 
218
261
  def assemble_command
219
- "gradle assemble#{(@app_flavour or "").capitalize}Release"
262
+ "gradle :#{@app_module}:assemble#{(@app_flavor or "").capitalize}Release"
220
263
  end
221
264
 
222
265
  end
@@ -1,3 +1,3 @@
1
1
  module Lasertag
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lasertag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - cesarferreira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-24 00:00:00.000000000 Z
11
+ date: 2015-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -95,20 +95,20 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.3.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: hirb
98
+ name: git
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '1.2'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
111
- description: Match your CVS tags with the android versions in laser speed!
110
+ version: '1.2'
111
+ description: Automatically map android app version to git tags
112
112
  email:
113
113
  - cesar.manuel.ferreira@gmail.com
114
114
  executables:
@@ -117,11 +117,14 @@ extensions: []
117
117
  extra_rdoc_files: []
118
118
  files:
119
119
  - ".gitignore"
120
+ - ".rspec"
121
+ - ".travis.yml"
120
122
  - Gemfile
121
123
  - LICENSE.txt
122
124
  - README.md
123
125
  - Rakefile
124
126
  - bin/lasertag
127
+ - extras/terminal.gif
125
128
  - lasertag.gemspec
126
129
  - lib/lasertag.rb
127
130
  - lib/lasertag/version.rb
@@ -148,6 +151,6 @@ rubyforge_project:
148
151
  rubygems_version: 2.4.8
149
152
  signing_key:
150
153
  specification_version: 4
151
- summary: Match your CVS tags with the android versions in laser speed!
154
+ summary: Automatically map android app version to git tags
152
155
  test_files: []
153
156
  has_rdoc: