kennethkalmer-smsinabox 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/sms-credit +7 -1
- data/bin/sms-send +29 -6
- data/bin/sms-setup +5 -2
- data/lib/smsinabox.rb +3 -3
- data/lib/smsinabox/configuration.rb +7 -2
- data/lib/smsinabox/version.rb +2 -2
- data/smsinabox.gemspec +1 -1
- metadata +1 -1
data/bin/sms-credit
CHANGED
@@ -12,6 +12,10 @@ end
|
|
12
12
|
require 'smsinabox'
|
13
13
|
require 'optparse'
|
14
14
|
|
15
|
+
OPTIONS = {
|
16
|
+
:config => nil
|
17
|
+
}
|
18
|
+
|
15
19
|
parser = OptionParser.new do |opts|
|
16
20
|
opts.banner = <<BANNER
|
17
21
|
Retrieve the number of credits in the account
|
@@ -21,12 +25,14 @@ Usage: #{File.basename($0)} [options]
|
|
21
25
|
Options are:
|
22
26
|
BANNER
|
23
27
|
opts.separator ""
|
28
|
+
opts.on("-c", "--config=path/to/config", String,
|
29
|
+
"Path to alternate config file (defaults to ~/.smsinabox)") { |m| OPTIONS[:config] = m }
|
24
30
|
opts.on("-h", "--help",
|
25
31
|
"Show this help message.") { puts opts; exit }
|
26
32
|
opts.parse!(ARGV)
|
27
33
|
|
28
34
|
end
|
29
35
|
|
30
|
-
Smsinabox.configure!
|
36
|
+
Smsinabox.configure!( OPTIONS[:config] )
|
31
37
|
|
32
38
|
puts "Credits left: #{Smsinabox.credits}"
|
data/bin/sms-send
CHANGED
@@ -14,9 +14,11 @@ require 'optparse'
|
|
14
14
|
|
15
15
|
OPTIONS = {
|
16
16
|
:recipient => nil,
|
17
|
-
:message => nil
|
17
|
+
:message => nil,
|
18
|
+
:pipe => false,
|
19
|
+
:config => nil
|
18
20
|
}
|
19
|
-
MANDATORY_OPTIONS = %w( recipient
|
21
|
+
MANDATORY_OPTIONS = %w( recipient )
|
20
22
|
|
21
23
|
parser = OptionParser.new do |opts|
|
22
24
|
opts.banner = <<BANNER
|
@@ -31,6 +33,10 @@ BANNER
|
|
31
33
|
"The recipient of the SMS") { |r| OPTIONS[:recipient] = r }
|
32
34
|
opts.on("-m", "--message=MESSAGE", String,
|
33
35
|
"The body of the message (wrap in quotes)") { |m| OPTIONS[:message] = m }
|
36
|
+
opts.on("-c", "--config=path/to/config", String,
|
37
|
+
"Path to alternate config file (defaults to ~/.smsinabox)") { |m| OPTIONS[:config] = m }
|
38
|
+
opts.on("-p", "--pipe",
|
39
|
+
"Read message text from STDIN") { OPTIONS[:pipe] = true }
|
34
40
|
opts.on("-h", "--help",
|
35
41
|
"Show this help message.") { puts opts; exit }
|
36
42
|
opts.parse!(ARGV)
|
@@ -38,16 +44,33 @@ BANNER
|
|
38
44
|
if MANDATORY_OPTIONS && MANDATORY_OPTIONS.find { |option| OPTIONS[option.to_sym].nil? }
|
39
45
|
puts opts; exit
|
40
46
|
end
|
47
|
+
|
48
|
+
if OPTIONS[:message].nil? && !OPTIONS[:pipe]
|
49
|
+
puts opts; exit
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# Figure out our message
|
54
|
+
message = if !OPTIONS[:message].nil?
|
55
|
+
OPTIONS[:message]
|
56
|
+
else
|
57
|
+
require 'fcntl'
|
58
|
+
if STDIN.fcntl(Fcntl::F_GETFL, 0) == 0
|
59
|
+
STDIN.read
|
60
|
+
else
|
61
|
+
puts "Nothing to read from STDIN!"
|
62
|
+
exit 1
|
63
|
+
end
|
41
64
|
end
|
42
65
|
|
43
|
-
Smsinabox.configure!
|
44
|
-
id = Smsinabox.send(
|
66
|
+
Smsinabox.configure!( OPTIONS[:config] )
|
67
|
+
id = Smsinabox.send(
|
45
68
|
Smsinabox::Message.new(
|
46
|
-
:recipient => OPTIONS[:recipient], :body =>
|
69
|
+
:recipient => OPTIONS[:recipient], :body => message
|
47
70
|
)
|
48
71
|
)
|
49
72
|
|
50
73
|
puts "Message sent"
|
51
74
|
puts "Reference: #{id}"
|
52
75
|
puts "Recipient: #{OPTIONS[:recipient]}"
|
53
|
-
puts "Message: #{
|
76
|
+
puts "Message: #{message}"
|
data/bin/sms-setup
CHANGED
@@ -14,7 +14,8 @@ require 'optparse'
|
|
14
14
|
|
15
15
|
OPTIONS = {
|
16
16
|
:username => nil,
|
17
|
-
:password => nil
|
17
|
+
:password => nil,
|
18
|
+
:config => nil
|
18
19
|
}
|
19
20
|
MANDATORY_OPTIONS = %w( username password )
|
20
21
|
|
@@ -34,6 +35,8 @@ BANNER
|
|
34
35
|
"Username to use") { |u| OPTIONS[:username] = u }
|
35
36
|
opts.on("-p", "--password=PASSWORD", String,
|
36
37
|
"Password to use") { |p| OPTIONS[:password] = p }
|
38
|
+
opts.on("-c", "--config=path/to/config", String,
|
39
|
+
"Path to alternate config file (defaults to ~/.smsinabox)") { |m| OPTIONS[:config] = m }
|
37
40
|
opts.on("-h", "--help",
|
38
41
|
"Show this help message.") { puts opts; exit }
|
39
42
|
opts.parse!(ARGV)
|
@@ -43,7 +46,7 @@ BANNER
|
|
43
46
|
end
|
44
47
|
end
|
45
48
|
|
46
|
-
config = Smsinabox::Configuration.new
|
49
|
+
config = Smsinabox::Configuration.new( OPTIONS[:config] )
|
47
50
|
config[:username] = OPTIONS[:username]
|
48
51
|
config[:password] = OPTIONS[:password]
|
49
52
|
config.save
|
data/lib/smsinabox.rb
CHANGED
@@ -34,9 +34,9 @@ module Smsinabox
|
|
34
34
|
)
|
35
35
|
end
|
36
36
|
|
37
|
-
# Set our username and password from
|
38
|
-
def configure!
|
39
|
-
c = Configuration.new
|
37
|
+
# Set our username and password from #Smsinabox::Configuration
|
38
|
+
def configure!( config_file = nil )
|
39
|
+
c = Configuration.new( config_file )
|
40
40
|
@username = c["username"]
|
41
41
|
@password = c["password"]
|
42
42
|
nil
|
@@ -1,9 +1,14 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
3
|
module Smsinabox
|
4
|
+
|
5
|
+
# Wrapper around our YAML configuration file, which lives in ~/.smsinabox by
|
6
|
+
# default
|
4
7
|
class Configuration
|
5
8
|
|
6
|
-
def initialize
|
9
|
+
def initialize( config_file = nil )
|
10
|
+
@config_file = config_file
|
11
|
+
|
7
12
|
check_file!
|
8
13
|
load_config
|
9
14
|
end
|
@@ -44,7 +49,7 @@ module Smsinabox
|
|
44
49
|
end
|
45
50
|
|
46
51
|
def config_name
|
47
|
-
File.expand_path( File.join('~', '.smsinabox') )
|
52
|
+
@config_file || File.expand_path( File.join('~', '.smsinabox') )
|
48
53
|
end
|
49
54
|
end
|
50
55
|
end
|
data/lib/smsinabox/version.rb
CHANGED
data/smsinabox.gemspec
CHANGED