adb_extended 0.2.0 → 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
  SHA256:
3
- metadata.gz: 1599ab3d60114cbd6e6c48ea80cf87c840bf719b752f38d65da6f3abcdaa98c8
4
- data.tar.gz: 2d217e928850bb01a2ce8bc0ebc6a4c3b4e62989b1cfdb7eccfaf084c5db5a2e
3
+ metadata.gz: 43bbb6dc08cda79edf091a126e7e6070006cd1fccf66fe7379d70cb73e219b35
4
+ data.tar.gz: 7c395ad6517c506db2dd8794b36bb8c487d0befac4ee90eab1db588823d26614
5
5
  SHA512:
6
- metadata.gz: '090d7c40f6a85081ecf4af0a1111079c7e4f39faf758fc58b63549269cdd77a25b99f12e56602e73c68a8a6c4f00371c41de1657a1e6249815926f3a31c337c4'
7
- data.tar.gz: 304d95298c24c68945df3e18a06da2e05e77d427563b12828a410957f388226e994906c318642d6e27499225acca21141542a0f6ae139ff779e59c2aeb6c9010
6
+ metadata.gz: fdd50c71ccc1c1c44f089c1d505891119123c639837a96c0ff93f43e8eee6664b3baee842fd3040477191bfca4b89fb524450a27bfb6b7d888b3261c71d23abf
7
+ data.tar.gz: 573197d5c48237bc1c8830a69adf93b1118ff500082e2c8bb04e3d72d5bb78a2933eef9f97f93a17e43a4a36131e17cdd14b652b5d2f8f75bbe26bc3d2072f0a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- adb_extended (0.1.0)
4
+ adb_extended (0.3.0)
5
5
  terminal-table
6
6
  thor
7
7
 
@@ -38,4 +38,4 @@ DEPENDENCIES
38
38
  rspec (~> 3.0)
39
39
 
40
40
  BUNDLED WITH
41
- 1.16.3
41
+ 1.16.5
@@ -81,6 +81,18 @@ module AdbExtended
81
81
  end
82
82
  end
83
83
 
84
+ def self.enter_text(text, submit = false, serial = nil)
85
+ key_event = submit ? 66 : 61
86
+ if serial != nil
87
+ stdout, stderr, status = Open3.capture3("adb -s #{serial} shell input text #{text} && adb -s #{serial} shell input keyevent #{key_event}")
88
+ else
89
+ devices.each { |device|
90
+ stdout, stderr, status = Open3.capture3("adb -s #{device[:serial]} shell input text #{text} && adb -s #{device[:serial]} shell input keyevent #{key_event}")
91
+ }
92
+ end
93
+ sleep 0.1
94
+ end
95
+
84
96
  def self.screenshot(serial = nil)
85
97
  t = Time.now
86
98
  timestamp = t.strftime("%Y%m%d-%H%M%S")
@@ -1,6 +1,10 @@
1
1
  require 'thor'
2
2
  require 'terminal-table'
3
3
  require 'adb_extended'
4
+ require 'yaml'
5
+ require 'fileutils'
6
+
7
+ $configuration_file_dir = File.expand_path("~/.adb_extended")
4
8
 
5
9
  module AdbExtended
6
10
  class CLI < Thor
@@ -42,6 +46,67 @@ module AdbExtended
42
46
  AdbExtended::Adb.shell(serial)
43
47
  end
44
48
 
49
+ desc "login", "Allows entry of usernames and passwords and will inject it into the login screen of the selected device"
50
+ method_options :all => :boolean
51
+ def login()
52
+
53
+ # Get the username/password
54
+ # Show the list of existing usernames/passwords
55
+
56
+ user_file_path = "#{$configuration_file_dir}/app_users.yml"
57
+
58
+ create_config_file(user_file_path)
59
+
60
+ users = YAML.load_file(user_file_path)
61
+
62
+ unless users
63
+ users = {}
64
+ end
65
+
66
+ table = Terminal::Table.new do |t|
67
+ header_row = %w(# Username)
68
+
69
+ t << header_row
70
+ t << :separator
71
+ if users.size > 0
72
+ users.each_with_index {|(key, value), index|
73
+ row = [index + 1, value[:username]]
74
+ t.add_row row
75
+ }
76
+ end
77
+
78
+ row = [users.size + 1, "Add new user"]
79
+ t.add_row row
80
+ end
81
+
82
+ puts table
83
+
84
+ accepted_inputs = *(1..users.size + 1).map {|i| i.to_s}
85
+ index = ask("Select an account to login (1 - #{users.size + 1}):", :limited_to => accepted_inputs).to_i - 1
86
+
87
+ if index > users.size - 1
88
+ # Create new user and save it or overwrite existing user
89
+ username = ask("Enter a username:")
90
+ password = ask("Enter a password:")
91
+
92
+ users[username] = {:username => username, :password => password}
93
+
94
+ File.open(user_file_path, "w") { |file| file.write(users.to_yaml) }
95
+ user = users[username]
96
+ else
97
+ user = users[users.keys[index]]
98
+ end
99
+
100
+ if options.all
101
+ AdbExtended::Adb.enter_text(user[:username], false)
102
+ AdbExtended::Adb.enter_text(user[:password], true)
103
+ else
104
+ device = pick_device
105
+ AdbExtended::Adb.enter_text(user[:username], false, device)
106
+ AdbExtended::Adb.enter_text(user[:password], true, device)
107
+ end
108
+ end
109
+
45
110
  desc "pidcat PACKAGE", "Lists the devices and allows you to choose one to run with pidcat"
46
111
  method_option :level, :default => 'd', :enum => %w(V D I W E F v d i w e f), :aliases => '-l'
47
112
  def pidcat(package = nil)
@@ -123,5 +188,13 @@ module AdbExtended
123
188
  devices[index][:serial]
124
189
  end
125
190
 
191
+ def create_config_file(path)
192
+ dirname = File.dirname(path)
193
+ unless File.directory?(dirname)
194
+ FileUtils.mkdir_p(dirname)
195
+ end
196
+ File.open(path, 'a+')
197
+ end
198
+
126
199
  end
127
200
  end
@@ -1,3 +1,3 @@
1
1
  module AdbExtended
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adb_extended
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Gilbert
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-03 00:00:00.000000000 Z
11
+ date: 2018-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler