dryrun 0.6.5 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7a82bf4d7e5bf344587e52b51b8f51158ddd823f
4
- data.tar.gz: a1b1e5e4ac6a8799729cc3cb571d4cff148bf009
3
+ metadata.gz: 036e595b962647744176802351d6e161da574fe9
4
+ data.tar.gz: 242399841f07ea231618a27f6b2c75ba7d83f5b6
5
5
  SHA512:
6
- metadata.gz: cf77b30f4b44a504c84907254b89518771fa33437d56c25a89e08e05bb7a9065f7caeec293fd5adec950222ab1e294c157f2a3bfd27872f3d8bb3044f29d77ad
7
- data.tar.gz: ef0ac730b9d866d48090bdc7388179557b1878710c954830ea4c4b519894c4da3f40ed809f6ad826de3c08238eb397df1c5715765d890b4255338dbba38fd068
6
+ metadata.gz: b397ce280f7d1584c3dd8111bf0ccfcf2a523624cde0ba16e14ded13d33857c7ff5f0671f090984d8aaa946292ec9e1428845f598f5f6d6f65c4c3f373bd155b
7
+ data.tar.gz: e4a92ddc5395763d8d6d12722f04d634b286480b26c57a32446530b9ab666b98a440039f7cea371ab7073eb4748ff44a372b461960094aa28cea0b555fa48e65
@@ -1 +1 @@
1
- 2.2.3
1
+ 2.3.0
@@ -1,4 +1,4 @@
1
1
  language: ruby
2
2
  sudo: false
3
3
  rvm:
4
- - 2.2.1
4
+ - 2.3.0
@@ -33,5 +33,8 @@ 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 'highline', '~> 1.7'
37
+ spec.add_dependency 'adb-sdklib', '~> 0.0.3'
38
+ spec.add_dependency 'rjb', '>= 1.5.4'
36
39
 
37
40
  end
@@ -1,3 +1,4 @@
1
+ require 'adb-sdklib'
1
2
  require 'optparse'
2
3
  require 'colorize'
3
4
  require 'tmpdir'
@@ -5,11 +6,12 @@ require 'fileutils'
5
6
  require 'dryrun/github'
6
7
  require 'dryrun/version'
7
8
  require 'dryrun/android_project'
9
+ require "highline/import"
8
10
 
9
11
  module DryRun
10
12
  class MainApp
11
13
  def initialize(arguments)
12
-
14
+ outdated_verification
13
15
  @url = ['-h', '--help', '-v', '--version'].include?(arguments.first) ? nil : arguments.shift
14
16
 
15
17
  # defaults
@@ -65,6 +67,64 @@ module DryRun
65
67
  end
66
68
  end
67
69
 
70
+ def outdated_verification
71
+ is_up_to_date = DryrunUtils.is_up_to_date
72
+
73
+ if is_up_to_date
74
+ return
75
+ end
76
+
77
+ input = nil
78
+
79
+ begin
80
+ input = ask "\n#{'Your Dryrun version is outdated, want to update?'.yellow} #{'[Y/n]:'.white}"
81
+ end while !['y', 'n', 's'].include?(input.downcase)
82
+
83
+ if input.downcase.eql? 'y'
84
+ DryrunUtils.execute('gem update dryrun')
85
+ end
86
+
87
+ end
88
+
89
+ def pick_device()
90
+ if !Gem.win_platform?
91
+ sdk = `echo $ANDROID_HOME`.gsub("\n",'')
92
+ sdk = sdk + "/platform-tools/adb";
93
+ else
94
+ sdk = `echo %ANDROID_HOME%`.gsub("\n",'')
95
+ sdk = sdk + "/platform-tools/adb.exe"
96
+ end
97
+
98
+ puts "Searching for devices...".yellow
99
+ adb = AdbSdkLib::Adb.new(sdk)
100
+ devices = adb.devices;
101
+
102
+ if devices.empty?
103
+ puts "No devices attached, but I'll run anyway"
104
+ end
105
+
106
+ @device = nil
107
+
108
+ if devices.size >= 2
109
+ puts "Pick your device (1,2,3...):"
110
+
111
+ devices.each_with_index.map {|key, index| puts "#{index.to_s.green} - #{key} \n"}
112
+
113
+ a = gets.chomp
114
+
115
+ if a.match(/^\d+$/) && a.to_i <= (devices.length - 1) && a.to_i >= 0
116
+ @device = devices.to_a.at((a.to_i))[1]
117
+ else
118
+ @device = devices.first
119
+ end
120
+ else
121
+ @device = devices.first
122
+ end
123
+
124
+ puts "Picked #{@device.to_s.green}" if @device
125
+ end
126
+
127
+
68
128
  def android_home_is_defined
69
129
  if !Gem.win_platform?
70
130
  sdk = `echo $ANDROID_HOME`.gsub("\n",'')
@@ -82,6 +142,8 @@ module DryRun
82
142
  exit 1
83
143
  end
84
144
 
145
+ pick_device()
146
+
85
147
  github = Github.new(@url)
86
148
 
87
149
  unless github.is_valid
@@ -92,7 +154,7 @@ module DryRun
92
154
  # clone the repository
93
155
  repository_path = github.clone(@branch, @tag)
94
156
 
95
- android_project = AndroidProject.new(repository_path, @app_path, @custom_module, @flavour)
157
+ android_project = AndroidProject.new(repository_path, @app_path, @custom_module, @flavour, @device)
96
158
 
97
159
  # is a valid android project?
98
160
  unless android_project.is_valid
@@ -1,3 +1,4 @@
1
+ require 'adb-sdklib'
1
2
  require 'oga'
2
3
  require 'fileutils'
3
4
  require 'tempfile'
@@ -6,12 +7,13 @@ require_relative 'dryrun_utils'
6
7
 
7
8
  module DryRun
8
9
  class AndroidProject
9
- def initialize(path, custom_app_path, custom_module, flavour)
10
+ def initialize(path, custom_app_path, custom_module, flavour, device)
10
11
 
11
12
  @custom_app_path = custom_app_path
12
13
  @custom_module = custom_module
13
14
  @base_path = path
14
15
  @flavour = flavour
16
+ @device = device
15
17
 
16
18
  @settings_gradle_path = settings_gradle_file
17
19
 
@@ -113,10 +115,9 @@ module DryRun
113
115
  clear_app_data
114
116
 
115
117
  puts "Installing #{@package.green}...\n"
116
- puts "executing: #{execute_line.green}\n\n"
117
-
118
- DryrunUtils.execute(execute_line)
118
+ puts "executing: #{execute_line.green}\n"
119
119
 
120
+ @device.shell("#{execute_line}")
120
121
  end
121
122
 
122
123
  def is_gradle_wrapped
@@ -141,20 +142,16 @@ module DryRun
141
142
  [false, false]
142
143
  end
143
144
 
144
- def get_clear_app_command
145
- "adb shell pm clear #{@package}"
146
- end
147
-
148
145
  def get_uninstall_command
149
- "adb uninstall #{@package}"
146
+ "adb uninstall \"#{@package}\""
150
147
  end
151
148
 
152
149
  def clear_app_data
153
- system(get_clear_app_command)
150
+ @device.shell("pm clear #{@package}")
154
151
  end
155
152
 
156
153
  def uninstall_application
157
- DryrunUtils.execute(get_uninstall_command) # > /dev/null 2>&1")
154
+ @device.shell("pm uninstall #{@package}")
158
155
  end
159
156
 
160
157
  def get_execution_line_command(path_to_sample)
@@ -175,7 +172,7 @@ module DryRun
175
172
 
176
173
  manifest_file.close
177
174
 
178
- "adb shell am start -n \"#{get_launchable_activity}\" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER"
175
+ return "am start -n \"#{get_launchable_activity}\" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER"
179
176
  end
180
177
 
181
178
  def get_manifest(path_to_sample)
@@ -1,3 +1,6 @@
1
+ require 'open-uri'
2
+ require 'dryrun/version'
3
+
1
4
  module DryRun
2
5
  class DryrunUtils
3
6
 
@@ -9,7 +12,23 @@ module DryRun
9
12
  puts " $ #{command}\n".yellow
10
13
  puts "======================================================\n\n"
11
14
  exit 1
12
- end
15
+ end
16
+ end
17
+
18
+ def self.get_latest_version
19
+ url = 'https://raw.githubusercontent.com/cesarferreira/dryrun/master/lib/dryrun/version.rb'
20
+ page_string = nil
21
+
22
+ open(url) do |f|
23
+ page_string = f.read
24
+ end
25
+
26
+ page_string[/#{Regexp.escape('\'')}(.*?)#{Regexp.escape('\'')}/m, 1]
27
+ end
28
+
29
+ def self.is_up_to_date
30
+ latest = get_latest_version
31
+ latest.eql? DryRun::VERSION
13
32
  end
14
- end
15
- end
33
+ end
34
+ end
@@ -1,3 +1,3 @@
1
1
  module DryRun
2
- VERSION = '0.6.5'
2
+ VERSION = '0.7.2'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dryrun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - cesar ferreira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-12 00:00:00.000000000 Z
11
+ date: 2016-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -94,6 +94,48 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.3.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: highline
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.7'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.7'
111
+ - !ruby/object:Gem::Dependency
112
+ name: adb-sdklib
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.0.3
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.0.3
125
+ - !ruby/object:Gem::Dependency
126
+ name: rjb
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 1.5.4
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.5.4
97
139
  description: Tool to try any android library hosted online directly from the command
98
140
  line
99
141
  email:
@@ -144,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
186
  version: '0'
145
187
  requirements: []
146
188
  rubyforge_project:
147
- rubygems_version: 2.4.5.1
189
+ rubygems_version: 2.5.1
148
190
  signing_key:
149
191
  specification_version: 4
150
192
  summary: Tool to try any android library hosted online directly from the command line