rb1drv-tools 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/lib/rb1drv-tools/command/help.rb +1 -0
- data/lib/rb1drv-tools/command/info.rb +11 -4
- data/lib/rb1drv-tools/command/upload.rb +16 -8
- data/lib/rb1drv-tools/utils.rb +6 -3
- data/lib/rb1drv-tools/version.rb +1 -1
- data/rb1drv-tools.gemspec +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac6c60e1b964a10dcaaee6c08122be48be2aa54f726243626d278abae553a0c2
|
4
|
+
data.tar.gz: 4e434e9cf006428c8ddac3d7d042a715acb7c044b3a453c681eee5d3ea63a846
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 72ffb0be1adce60d478df6a454c36414d39c204861a4816b5c41d59993c0063e1a058645be46262ec99f38966714f26faf92b9c10190314f9d285b392f866332
|
7
|
+
data.tar.gz: 50d3031fcd2eabcd36d07aafbd6add01f99696433d94f1dd4548bcd3a695c398213b8cb77a8b585ad31d8d59507a62efc693d4660bcf397800237842ae3f16d2
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rb1drv-tools (0.1.
|
5
|
-
rb1drv (
|
4
|
+
rb1drv-tools (0.1.5)
|
5
|
+
rb1drv (>= 0.1.7)
|
6
6
|
tty-progressbar (~> 0)
|
7
7
|
tty-prompt (~> 0)
|
8
8
|
tty-screen (~> 0)
|
@@ -31,7 +31,7 @@ GEM
|
|
31
31
|
tty-color (~> 0.4.0)
|
32
32
|
rack (2.0.5)
|
33
33
|
rake (10.5.0)
|
34
|
-
rb1drv (0.1.
|
34
|
+
rb1drv (0.1.7)
|
35
35
|
excon (~> 0.62)
|
36
36
|
oauth2 (~> 1.4)
|
37
37
|
timers (4.1.2)
|
@@ -33,6 +33,7 @@ module Rb1drvTools
|
|
33
33
|
download [-f] <r-files> [@target] Download files into directory recursively, skipping existing files
|
34
34
|
-f Overwrite existing files regardless
|
35
35
|
-s Overwrite existing files with different size or older date
|
36
|
+
-t Reset last modified time if remote file has newer date and same size
|
36
37
|
@directory/ Upload or download into directory as children, if:
|
37
38
|
- target directory exists
|
38
39
|
- target ends with a slash
|
@@ -4,15 +4,22 @@ module Rb1drvTools
|
|
4
4
|
Profile.profile
|
5
5
|
format = '%10s: %s'
|
6
6
|
CLI.od.request('drives').dig('value').each do |drive|
|
7
|
+
total = drive.dig('quota', 'total').to_i
|
8
|
+
used = drive.dig('quota', 'used').to_i
|
9
|
+
deleted = drive.dig('quota', 'deleted').to_i
|
10
|
+
remaining = drive.dig('quota', 'remaining').to_i
|
11
|
+
lost = total - used - deleted - remaining
|
12
|
+
|
7
13
|
{
|
8
14
|
'ID' => drive.dig('id'),
|
9
15
|
'Site' => drive.dig('webUrl'),
|
10
16
|
'Type' => drive.dig('driveType'),
|
11
17
|
'Owner' => '%s <%s>' % [drive.dig('owner', 'user', 'displayName'), drive.dig('owner', 'user', 'email')],
|
12
|
-
'Size' => Utils.humanize_size(
|
13
|
-
'Used' => Utils.humanize_size(
|
14
|
-
'Deleted' => Utils.humanize_size(
|
15
|
-
'Free' => Utils.humanize_size(
|
18
|
+
'Size' => Utils.humanize_size(total),
|
19
|
+
'Used' => Utils.humanize_size(used),
|
20
|
+
'Deleted' => Utils.humanize_size(deleted),
|
21
|
+
'Free' => Utils.humanize_size(remaining),
|
22
|
+
'Lost' => Utils.humanize_size(lost) # Lost in universe (Version History)
|
16
23
|
}.each do |row|
|
17
24
|
puts format % row
|
18
25
|
end
|
@@ -6,6 +6,7 @@ module Rb1drvTools
|
|
6
6
|
file_mode = true
|
7
7
|
overwrite = false
|
8
8
|
overwrite_smarter = false
|
9
|
+
time_sync = false
|
9
10
|
|
10
11
|
items = []
|
11
12
|
args.each do |arg|
|
@@ -16,6 +17,8 @@ module Rb1drvTools
|
|
16
17
|
overwrite_smarter = true
|
17
18
|
when 'f'
|
18
19
|
overwrite = true
|
20
|
+
when 't'
|
21
|
+
time_sync = true
|
19
22
|
else
|
20
23
|
puts "Warning: unknown flag '#{flag}'."
|
21
24
|
end
|
@@ -58,7 +61,7 @@ module Rb1drvTools
|
|
58
61
|
target_dir = get_obj(File.dirname(target))
|
59
62
|
CLI.cwd.mkdir(File.dirname(target))
|
60
63
|
target_name = File.basename(target)
|
61
|
-
upload(items.first, target_dir, File.basename(target), overwrite_policy: overwrite_policy)
|
64
|
+
upload(items.first, target_dir, File.basename(target), overwrite_policy: overwrite_policy, time_sync: time_sync)
|
62
65
|
else
|
63
66
|
items.each do |item|
|
64
67
|
unless target_obj.dir?
|
@@ -72,40 +75,45 @@ module Rb1drvTools
|
|
72
75
|
end
|
73
76
|
Dir[item].each do |match|
|
74
77
|
if File.directory?(match)
|
75
|
-
traverse_dir(match, target_obj.mkdir(File.basename(match)))
|
78
|
+
traverse_dir(match, target_obj.mkdir(File.basename(match)), overwrite_policy: overwrite_policy, time_sync: time_sync)
|
76
79
|
else
|
77
|
-
upload(match, target_obj, File.basename(match), overwrite_policy: overwrite_policy)
|
80
|
+
upload(match, target_obj, File.basename(match), overwrite_policy: overwrite_policy, time_sync: time_sync)
|
78
81
|
end
|
79
82
|
end
|
80
83
|
end
|
81
84
|
end
|
82
85
|
end
|
83
86
|
|
84
|
-
def self.traverse_dir(source_directory, target_directory)
|
87
|
+
def self.traverse_dir(source_directory, target_directory, overwrite_policy: :skip, time_sync: false)
|
85
88
|
Dir.entries(source_directory).sort.each do |child|
|
86
89
|
next if child == '.' || child == '..'
|
87
90
|
new_path = File.join(source_directory, child)
|
88
91
|
if File.directory?(new_path)
|
89
92
|
new_dir = target_directory.get_child(child)
|
90
93
|
new_dir = target_directory.mkdir(child) unless new_dir.dir?
|
91
|
-
traverse_dir(new_path, new_dir)
|
94
|
+
traverse_dir(new_path, new_dir, overwrite_policy: overwrite_policy, time_sync: time_sync)
|
92
95
|
else
|
93
|
-
upload(new_path, target_directory, child)
|
96
|
+
upload(new_path, target_directory, child, overwrite_policy: overwrite_policy, time_sync: time_sync)
|
94
97
|
end
|
95
98
|
end
|
96
99
|
end
|
97
100
|
|
98
|
-
def self.upload(source_file, target_directory, target_name, overwrite_policy: :skip)
|
101
|
+
def self.upload(source_file, target_directory, target_name, overwrite_policy: :skip, time_sync: false)
|
99
102
|
return if source_file.include?('.1drv_upload')
|
100
103
|
printf "%s => %s :: %s\n", source_file, target_directory.absolute_path, target_name
|
101
104
|
target_obj = target_directory.get_child(target_name)
|
102
105
|
return puts 'Target is a directory, skipped' if target_obj.dir?
|
106
|
+
mtime = File.mtime(source_file)
|
107
|
+
file_size = File.size(source_file)
|
103
108
|
if overwrite_policy != :overwrite && target_obj.file?
|
109
|
+
if time_sync && target_obj.size == file_size && target_obj.mtime - mtime > 2
|
110
|
+
target_obj.set_mtime(mtime)
|
111
|
+
print '<sync mtime> '
|
112
|
+
end
|
104
113
|
return puts 'Skipped' if overwrite_policy == :skip
|
105
114
|
return puts 'Remote file is up to date, skipped' if target_obj.mtime >= File.mtime(source_file) - 2
|
106
115
|
end
|
107
116
|
screen_width = TTY::Screen.width
|
108
|
-
file_size = File.size(source_file)
|
109
117
|
if STDOUT.tty? && screen_width >= 50
|
110
118
|
multibar = TTY::ProgressBar::Multi.new
|
111
119
|
bar = multibar.register("%s :current_byte / :total_byte :byte_rate/s [:bar] :eta :percent" % source_file[0..29], total: file_size, frequency: 2, head: '>')
|
data/lib/rb1drv-tools/utils.rb
CHANGED
@@ -52,13 +52,16 @@ module Rb1drvTools
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def humanize_size(size)
|
55
|
+
num = size.abs.to_f
|
55
56
|
units = ['', 'K', 'M', 'G']
|
56
57
|
unit_idx = 0
|
57
|
-
while
|
58
|
-
|
58
|
+
while num > 8192.0 && unit_idx < units.size - 1 do
|
59
|
+
num /= 1024.0
|
59
60
|
unit_idx += 1
|
60
61
|
end
|
61
|
-
|
62
|
+
num = num.round(1)
|
63
|
+
num = -num if size < 0
|
64
|
+
"#{num}#{units[unit_idx]}"
|
62
65
|
end
|
63
66
|
end
|
64
67
|
end
|
data/lib/rb1drv-tools/version.rb
CHANGED
data/rb1drv-tools.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
spec.required_ruby_version = '>= 2.3'
|
23
23
|
|
24
|
-
spec.add_dependency "rb1drv", "
|
24
|
+
spec.add_dependency "rb1drv", ">= 0.1.7"
|
25
25
|
spec.add_dependency "tty-progressbar", "~> 0"
|
26
26
|
spec.add_dependency "tty-prompt", "~> 0"
|
27
27
|
spec.add_dependency "tty-screen", "~> 0"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb1drv-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xinyue Lu
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rb1drv
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.1.7
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.1.7
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tty-progressbar
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|