summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2017-03-24 23:57:56 -0600
committerDan Allen <dan.j.allen@gmail.com>2017-03-25 01:58:10 -0600
commit32f24ed680cec219040bee09a154866fa270638d (patch)
treea0319c827b9ddffcfb81e4f82fa42c07bab1d429 /bin
parent9a89e109105b6369d08ecff7226f4fd3395b11da (diff)
update adb-push-book to honor file extension if specified
Diffstat (limited to 'bin')
-rwxr-xr-xbin/adb-push-ebook29
1 files changed, 19 insertions, 10 deletions
diff --git a/bin/adb-push-ebook b/bin/adb-push-ebook
index da5edb1..9383353 100755
--- a/bin/adb-push-ebook
+++ b/bin/adb-push-ebook
@@ -1,6 +1,10 @@
#!/usr/bin/env ruby
ADB = ENV['ADB'] || 'adb'
+TARGETS = {
+ '.epub' => '/sdcard/',
+ '.mobi' => '/sdcard/Android/data/com.amazon.kindle/files/'
+}
unless ::File.executable? ADB
warn %(adb-push-ebook: `adb` not found.\nPlease set the ADB environment variable or add `adb` to your PATH.)
@@ -10,16 +14,21 @@ end
require 'open3'
require 'shellwords'
-docname = ARGV[0] || '_output/sample-book'
+payload_file = ARGV[0] || '_output/sample-book'
-targets = {
- 'epub' => '/sdcard/',
- 'mobi' => '/sdcard/Android/data/com.amazon.kindle/files/'
-}
+if (payload_file_ext = File.extname payload_file).empty?
+ transfers = TARGETS.map do |(ext, target_dir)|
+ {
+ src: %(#{payload_file}#{ext}),
+ dest: target_dir
+ }
+ end
+else
+ transfers = [{ src: payload_file, dest: TARGETS[payload_file_ext] }]
+end
-targets.each {|(ext, target)|
- file = %(#{docname}.#{ext})
- Open3.popen2e(Shellwords.join [ADB, 'push', file, target]) {|input, output, wait_thr|
+transfers.each do |transfer|
+ Open3.popen2e(Shellwords.join [ADB, 'push', transfer[:src], transfer[:dest]]) do |input, output, wait_thr|
output.each {|line| puts line }
- } if File.file? file
-}
+ end if File.file? transfer[:src]
+end