rb1drv-tools 0.1.4 → 0.1.5
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/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
|