pb-cli 0.1.0 → 0.2.1
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 +4 -4
- data/.travis.yml +11 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +6 -3
- data/README.md +9 -1
- data/lib/pb/cli/device.rb +25 -0
- data/lib/pb/cli/util.rb +46 -11
- data/lib/pb/cli/version.rb +1 -1
- data/lib/pb/cli.rb +13 -10
- data/pb-cli.gemspec +4 -0
- metadata +44 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd953098ed7f1914d212fd03f90b2777466d53c1
|
4
|
+
data.tar.gz: 4c3732232b90d0cd7c5e0d3fcf676b91e35a4e78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 85aa6d0fc1cc40ea4d281246a5b4002a03cee5e2f5a25dc834dd2d03c4086a2dbd2d83d3d241edecb3396873240b3601eed93abcaefab01a7c4aad7da2ee8a0f
|
7
|
+
data.tar.gz: 7c044fb66bfb8d7668eb091a24c2e01dfe88b4956f624485ea2c8f9656180f07b07469e4ecc1207ec5da8a0ebf430af9cdfb87e8e8aeb6d349790a38b230e923
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pb-cli (0.1
|
4
|
+
pb-cli (0.2.1)
|
5
|
+
rest-client (~> 1.8)
|
6
|
+
terminal-table (~> 1.5)
|
7
|
+
thor (~> 0.19)
|
5
8
|
|
6
9
|
GEM
|
7
10
|
remote: https://rubygems.org/
|
@@ -11,7 +14,6 @@ GEM
|
|
11
14
|
unf (>= 0.0.5, < 1.0.0)
|
12
15
|
http-cookie (1.0.2)
|
13
16
|
domain_name (~> 0.5)
|
14
|
-
json (1.8.3)
|
15
17
|
mime-types (2.6.2)
|
16
18
|
netrc (0.10.3)
|
17
19
|
rake (10.4.2)
|
@@ -32,6 +34,7 @@ GEM
|
|
32
34
|
diff-lcs (>= 1.2.0, < 2.0)
|
33
35
|
rspec-support (~> 3.3.0)
|
34
36
|
rspec-support (3.3.0)
|
37
|
+
terminal-table (1.5.2)
|
35
38
|
thor (0.19.1)
|
36
39
|
unf (0.1.4)
|
37
40
|
unf_ext
|
@@ -42,11 +45,11 @@ PLATFORMS
|
|
42
45
|
|
43
46
|
DEPENDENCIES
|
44
47
|
bundler (~> 1.10)
|
45
|
-
json
|
46
48
|
pb-cli!
|
47
49
|
rake (~> 10.0)
|
48
50
|
rest-client
|
49
51
|
rspec
|
52
|
+
terminal-table
|
50
53
|
thor
|
51
54
|
|
52
55
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# pb-cli
|
2
2
|
|
3
|
+
[](https://travis-ci.org/miya0001/pb-cli)
|
4
|
+
|
3
5
|
A command line interface for Pushbullet.
|
4
6
|
|
5
7
|
https://www.pushbullet.com/
|
@@ -28,6 +30,12 @@ Send notification.
|
|
28
30
|
$ pb push <MESSAGE> [--title <TITLE>]
|
29
31
|
```
|
30
32
|
|
33
|
+
Or send notification from STDIN.
|
34
|
+
|
35
|
+
```
|
36
|
+
$ ls -al | pb push
|
37
|
+
```
|
38
|
+
|
31
39
|
See also `pb help`.
|
32
40
|
|
33
41
|
## Development
|
@@ -38,7 +46,7 @@ $ cd pb-cli
|
|
38
46
|
$ bundle install --path vendor/bundle
|
39
47
|
```
|
40
48
|
|
41
|
-
### Running automated
|
49
|
+
### Running automated tests
|
42
50
|
|
43
51
|
```
|
44
52
|
$ bundle exec rspec
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# vim: ft=ruby expandtab shiftwidth=2 tabstop=2
|
3
|
+
|
4
|
+
require "thor"
|
5
|
+
|
6
|
+
module Pushbullet_CLI
|
7
|
+
class Device < Thor
|
8
|
+
class_option :token, :desc => "Access token"
|
9
|
+
|
10
|
+
desc "list", "Get a list of devices belonging to the current user."
|
11
|
+
def list
|
12
|
+
url = "https://api.pushbullet.com/v2/devices?active=true"
|
13
|
+
token = Utils::get_token( options )
|
14
|
+
|
15
|
+
result = Utils::send( url, token, "get" )
|
16
|
+
row = result['devices'].map.with_index{ | device | [
|
17
|
+
device['iden'],
|
18
|
+
device['nickname'],
|
19
|
+
device['model'],
|
20
|
+
] }
|
21
|
+
|
22
|
+
Utils:: print_table( [ "Iden", "Nickname", "Model" ], row )
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/pb/cli/util.rb
CHANGED
@@ -2,10 +2,12 @@
|
|
2
2
|
# vim: ft=ruby expandtab shiftwidth=2 tabstop=2
|
3
3
|
|
4
4
|
require "yaml"
|
5
|
+
require "terminal-table"
|
5
6
|
|
6
7
|
module Pushbullet_CLI
|
7
8
|
class Utils
|
8
9
|
class << self
|
10
|
+
|
9
11
|
def get_config
|
10
12
|
conf = {}
|
11
13
|
if File.exists?( File.join( ENV["HOME"], '.pb-cli/config.yml' ) )
|
@@ -20,20 +22,53 @@ module Pushbullet_CLI
|
|
20
22
|
return conf
|
21
23
|
end
|
22
24
|
|
23
|
-
def
|
25
|
+
def get_token( options )
|
26
|
+
token = ""
|
27
|
+
unless options[:token].nil?
|
28
|
+
token = options[:token]
|
29
|
+
else
|
30
|
+
config = Utils::get_config
|
31
|
+
unless config["access_token"].nil?
|
32
|
+
token = config["access_token"]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
unless token.empty?
|
37
|
+
return token
|
38
|
+
else
|
39
|
+
puts "Please initialize an Access Token with `pb init <ACCESS-TOKEN>`."
|
40
|
+
exit 1
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def send( url, access_token, method = "post", args = {} )
|
24
45
|
begin
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
46
|
+
if "post" == method
|
47
|
+
return JSON.parse( RestClient.post(
|
48
|
+
url,
|
49
|
+
args.to_json,
|
50
|
+
:content_type => :json,
|
51
|
+
:accept => :json,
|
52
|
+
"Access-Token" => access_token
|
53
|
+
) )
|
54
|
+
elsif "get" == method
|
55
|
+
return JSON.parse( RestClient.get(
|
56
|
+
url,
|
57
|
+
:content_type => :json,
|
58
|
+
:accept => :json,
|
59
|
+
"Access-Token" => access_token
|
60
|
+
) )
|
61
|
+
end
|
32
62
|
rescue => e
|
33
63
|
$stderr.puts e.message
|
34
64
|
exit 1
|
35
65
|
end
|
36
66
|
end
|
37
|
-
|
38
|
-
|
39
|
-
|
67
|
+
|
68
|
+
def print_table( headers, rows )
|
69
|
+
puts Terminal::Table.new :headings => headers, :rows => rows
|
70
|
+
end
|
71
|
+
|
72
|
+
end # end self
|
73
|
+
end # end Utils
|
74
|
+
end # end Pushbullet_CLI
|
data/lib/pb/cli/version.rb
CHANGED
data/lib/pb/cli.rb
CHANGED
@@ -3,38 +3,39 @@
|
|
3
3
|
|
4
4
|
require "pb/cli/version"
|
5
5
|
require "pb/cli/util"
|
6
|
+
require "pb/cli/device"
|
6
7
|
require "thor"
|
7
8
|
require "rest-client"
|
8
9
|
require "yaml"
|
9
10
|
|
10
11
|
module Pushbullet_CLI
|
11
12
|
class Command < Thor
|
12
|
-
|
13
|
-
def self.exit_on_failure?
|
14
|
-
true
|
15
|
-
end
|
13
|
+
class_option :token, :desc => "Access token"
|
16
14
|
|
17
15
|
desc "push <MESSAGE>", "Send a push to devices or another persons."
|
18
|
-
method_option :title, :
|
19
|
-
|
16
|
+
method_option :title, :desc => "Title of the notification."
|
17
|
+
method_option :device, :desc => "Iden of the target device to push."
|
20
18
|
# method_option :person, :aliases => "-p", :desc => "Delete the file after parsing it"
|
21
19
|
def push( message = "" )
|
22
|
-
if File.pipe?(STDIN) || File.select([STDIN], [], [], 0) != nil then
|
20
|
+
if File.pipe?( STDIN ) || File.select( [STDIN], [], [], 0 ) != nil then
|
23
21
|
message = STDIN.readlines().join( "" )
|
24
22
|
end
|
25
23
|
|
26
24
|
url = "https://api.pushbullet.com/v2/pushes"
|
25
|
+
token = Utils::get_token( options )
|
27
26
|
|
28
27
|
if message
|
29
|
-
config = Utils::get_config
|
30
|
-
|
31
28
|
args = {
|
32
29
|
"type" => "note",
|
33
30
|
"body" => message,
|
34
31
|
"title" => ( options[:title] ? options[:title] : "" )
|
35
32
|
}
|
36
33
|
|
37
|
-
|
34
|
+
if options[:device]
|
35
|
+
args['device_iden'] = options[:device]
|
36
|
+
end
|
37
|
+
|
38
|
+
Utils::send( url, token, "post", args )
|
38
39
|
else
|
39
40
|
puts "Nothing to do."
|
40
41
|
end
|
@@ -51,5 +52,7 @@ module Pushbullet_CLI
|
|
51
52
|
FileUtils.chmod( 0600, File.join( ENV["HOME"], '.pb-cli', 'config.yml' ) )
|
52
53
|
end
|
53
54
|
|
55
|
+
desc "device <SUBCOMMAND>", "Manage devices."
|
56
|
+
subcommand "device", Device
|
54
57
|
end # end class Command
|
55
58
|
end # end module Pushbullet_CLi
|
data/pb-cli.gemspec
CHANGED
@@ -28,4 +28,8 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 1.10"
|
30
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
+
|
32
|
+
spec.add_dependency 'thor', '~> 0.19'
|
33
|
+
spec.add_dependency 'rest-client', '~> 1.8'
|
34
|
+
spec.add_dependency 'terminal-table', '~> 1.5'
|
31
35
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pb-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miya0001
|
@@ -38,6 +38,48 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: thor
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.19'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.19'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rest-client
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.8'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.8'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: terminal-table
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.5'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.5'
|
41
83
|
description: Use Pushbullet from cli.
|
42
84
|
email:
|
43
85
|
- miya@wpist.me
|
@@ -57,6 +99,7 @@ files:
|
|
57
99
|
- bin/setup
|
58
100
|
- exe/pb
|
59
101
|
- lib/pb/cli.rb
|
102
|
+
- lib/pb/cli/device.rb
|
60
103
|
- lib/pb/cli/util.rb
|
61
104
|
- lib/pb/cli/version.rb
|
62
105
|
- pb-cli.gemspec
|