lhj-tools 0.2.80 → 0.2.81
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/lib/lhj/command/oss/download.rb +23 -22
- data/lib/lhj/command/oss/list.rb +14 -4
- data/lib/lhj/command/oss/upload.rb +13 -11
- data/lib/lhj/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a419cd28646ee40f8a8705d14b93ef95795e54cd8aad658ed1f091a5bb32541c
|
|
4
|
+
data.tar.gz: 2819685f8bc414cfa696094c1ffa1b5509761b3ae70caacbd218feb7818eded5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6bc1dc881c997fab47da6556bc6b2bb54816ecfc22f6178cdb5b181abb836637c1e5fae66a296ba2564aff7066147a9d1afbbce7bc462e90fe348dab5d33593c
|
|
7
|
+
data.tar.gz: e5f169d598fef4c355b7759608fd2be7e4cc04b0a54525390a21273aa95727f16c56916d2b065365dad9005b83d3f3eebda1cd9bf2693011adbb51816a2bebac
|
|
@@ -10,44 +10,45 @@ module Lhj
|
|
|
10
10
|
class OSS < Command
|
|
11
11
|
class Download < OSS
|
|
12
12
|
|
|
13
|
-
self.arguments = [
|
|
14
|
-
CLAide::Argument.new(['--oss_key_file'], false, false)
|
|
15
|
-
]
|
|
16
|
-
|
|
17
13
|
self.description = <<~DESC
|
|
18
14
|
OSS下载,下载文件到当前shell的目录\n
|
|
19
15
|
提示的下载的序号以,号分割多项下载项, 传入开始与结束的序号通过-号连接,可下载多项连接序号的文件\n
|
|
20
16
|
如 1,5,7-10,12-15 那么下载项为 [1,5,7,8,9,10,12,13,14,15]\n
|
|
21
|
-
--oss_key_file oss key文件列表, 通过lhj oss list --save之后生成oss_key.yml文件, 保留需要下载的oss key,指定文件名oss_key.yml\n
|
|
22
|
-
如: --oss_key_file=oss_key.yml
|
|
23
17
|
DESC
|
|
24
18
|
|
|
25
|
-
def self.options
|
|
26
|
-
[
|
|
27
|
-
%w[--oss_key_file 本地下载的oss_key文件]
|
|
28
|
-
]
|
|
29
|
-
end
|
|
30
|
-
|
|
31
19
|
def initialize(argv)
|
|
32
20
|
@current_path = argv.shift_argument || Dir.pwd
|
|
33
21
|
@cli = HighLine.new
|
|
34
|
-
@oss_key_file = argv.option('oss_key_file')
|
|
35
22
|
super
|
|
36
23
|
end
|
|
37
24
|
|
|
38
25
|
def handle
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
type = @cli.choose do |m|
|
|
27
|
+
m.prompt = '选择下载方式?'
|
|
28
|
+
m.choice(:remote)
|
|
29
|
+
m.choice(:local)
|
|
43
30
|
end
|
|
31
|
+
handle_with_local if type == :local
|
|
32
|
+
handle_with_remote if type == :remote
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def handle_with_local
|
|
36
|
+
@cli.say(HighLine.color('选择本地yaml文件:', :green))
|
|
37
|
+
path = File.join(@current_path, '**', '*.yml')
|
|
38
|
+
yml_file = @cli.choose(*Dir.glob(path))
|
|
39
|
+
oss_keys = YAML.load_file(yml_file) if File.exist?(yml_file)
|
|
40
|
+
handle_with_oss_keys(oss_keys)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def handle_with_remote
|
|
44
|
+
oss_keys = remote_oss_keys
|
|
45
|
+
handle_with_oss_keys(oss_keys)
|
|
44
46
|
end
|
|
45
47
|
|
|
46
|
-
def
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
oss_keys
|
|
48
|
+
def handle_with_oss_keys(oss_keys)
|
|
49
|
+
Dir.chdir(@current_path) do
|
|
50
|
+
oss_keys.each { |k| download_with_key(k) }
|
|
51
|
+
end
|
|
51
52
|
end
|
|
52
53
|
|
|
53
54
|
def remote_oss_keys
|
data/lib/lhj/command/oss/list.rb
CHANGED
|
@@ -42,27 +42,37 @@ module Lhj
|
|
|
42
42
|
@output_suffix = argv.option('output_suffix')
|
|
43
43
|
@marker = argv.option('marker')
|
|
44
44
|
@current_path = argv.shift_argument || Dir.pwd
|
|
45
|
+
@cli = HighLine.new
|
|
45
46
|
super
|
|
46
47
|
end
|
|
47
48
|
|
|
48
49
|
def handle
|
|
49
50
|
list_opts = {}
|
|
51
|
+
if @save
|
|
52
|
+
time = Time.now.strftime('%Y%m%d_%H%M')
|
|
53
|
+
oss_key_file = @cli.ask(HighLine.color('生成OSS_KEY的名称:', :green), String) do |q|
|
|
54
|
+
q.default = "oss_key_#{time}.yml"
|
|
55
|
+
end
|
|
56
|
+
oss_url_file = @cli.ask(HighLine.color('生成OSS_URL的名称:', :green), String) do |q|
|
|
57
|
+
q.default = "oss_url_#{time}.yml"
|
|
58
|
+
end
|
|
59
|
+
end
|
|
50
60
|
list_opts[:prefix] = @prefix if @prefix
|
|
51
61
|
list_opts[:marker] = @marker if @marker
|
|
52
62
|
list_opts[:delimiter] = '/' if @all_folder
|
|
53
63
|
objects = Lhj::OSS::Helper.instance.list(list_opts)
|
|
54
64
|
obj_keys = objects.map(&:key).sort { |a, b| a <=> b } unless @all_folder
|
|
55
65
|
obj_keys = objects.filter { |o| o.is_a?(String) } if @all_folder
|
|
56
|
-
save(obj_keys) if @save
|
|
66
|
+
save(obj_keys, oss_key_file, oss_url_file) if @save
|
|
57
67
|
print(obj_keys) unless @clear
|
|
58
68
|
end
|
|
59
69
|
|
|
60
|
-
def save(obj_keys)
|
|
70
|
+
def save(obj_keys, key_file, url_file)
|
|
61
71
|
obj_urls = obj_keys.sort { |a, b| a.slice(/\..*/) <=> b.slice(/\..*/) }.map { |k| "#{Lhj::OSS::Helper.instance.url_path}/#{k}" }
|
|
62
72
|
obj_urls = obj_urls.map { |k| "#{k}?#{@output_suffix}" } if @output_suffix
|
|
63
73
|
FileUtils.chdir(@current_path) do
|
|
64
|
-
File.write(
|
|
65
|
-
File.write(
|
|
74
|
+
File.write(key_file, obj_keys.to_yaml)
|
|
75
|
+
File.write(url_file, obj_urls.to_yaml) unless @all_folder
|
|
66
76
|
end
|
|
67
77
|
end
|
|
68
78
|
|
|
@@ -10,8 +10,7 @@ module Lhj
|
|
|
10
10
|
class Upload < OSS
|
|
11
11
|
|
|
12
12
|
self.arguments = [
|
|
13
|
-
CLAide::Argument.new('tag', false)
|
|
14
|
-
CLAide::Argument.new('oss_key', false)
|
|
13
|
+
CLAide::Argument.new('tag', false)
|
|
15
14
|
]
|
|
16
15
|
|
|
17
16
|
self.description = <<~DESC
|
|
@@ -19,20 +18,17 @@ module Lhj
|
|
|
19
18
|
提示的上传的序号以,号分割多项下载项, 传入开始与结束的序号通过-号连接,可上传多项连接序号的文件\n
|
|
20
19
|
如 1,5,7-10,12-15 那么下载项为 [1,5,7,8,9,10,12,13,14,15]\n
|
|
21
20
|
--tag 指定文件的前缀,如--tag=flutter 则文件为flutter/xx
|
|
22
|
-
--oss_key 指定oss key重命名默认oss key,默认oss key为文件名, 如--oss_key=aa.txt
|
|
23
21
|
DESC
|
|
24
22
|
|
|
25
23
|
def self.options
|
|
26
24
|
[
|
|
27
|
-
%w[--tag 标签]
|
|
28
|
-
%w[--oss_key 指定oss_key的名称]
|
|
25
|
+
%w[--tag 标签]
|
|
29
26
|
]
|
|
30
27
|
end
|
|
31
28
|
|
|
32
29
|
def initialize(argv)
|
|
33
30
|
@current_path = argv.shift_argument || Dir.pwd
|
|
34
31
|
@tag = argv.option('tag')
|
|
35
|
-
@oss_key = argv.option('oss_key')
|
|
36
32
|
@cli = HighLine.new
|
|
37
33
|
super
|
|
38
34
|
end
|
|
@@ -51,18 +47,24 @@ module Lhj
|
|
|
51
47
|
results << file_list[ma[:begin].to_i..ma[:end].to_i] if ma
|
|
52
48
|
results << file_list[i.to_i] unless ma
|
|
53
49
|
end
|
|
54
|
-
results.flatten
|
|
50
|
+
results = results.flatten
|
|
51
|
+
results.each do |f|
|
|
55
52
|
file_name = File.basename(f)
|
|
53
|
+
file_name = rename_oss_key(file_name) if results.length == 1
|
|
56
54
|
puts "上传的文件名:#{file_name}".yellow
|
|
57
|
-
upload(f)
|
|
55
|
+
upload(f, file_name)
|
|
58
56
|
end
|
|
59
57
|
end
|
|
60
58
|
|
|
61
59
|
private
|
|
62
60
|
|
|
63
|
-
def
|
|
64
|
-
|
|
65
|
-
|
|
61
|
+
def rename_oss_key(original_key)
|
|
62
|
+
@cli.ask(HighLine.color('重定义OSS_KEY:', :green), String) do |q|
|
|
63
|
+
q.default = original_key
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def upload(file, file_name)
|
|
66
68
|
oss_key = file_name
|
|
67
69
|
oss_key = "#{@tag}/#{file_name}" if @tag
|
|
68
70
|
Lhj::OSS::Helper.instance.upload(oss_key, file)
|
data/lib/lhj/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lhj-tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.81
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- lihaijian
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-01-
|
|
11
|
+
date: 2024-01-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: xcodeproj
|