6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'lib/ipfs-http-client-rb/commands/add_dir.rb', line 6
def self.call(client, dir)
root = File.dirname dir
form_files = []
form_files << HTTP::FormData::Part.new(
"",
content_type: 'application/x-directory',
filename: File.basename(dir)
)
Dir["#{dir}/**/*"].each do |file|
filename = file[(root.size + 1)..file.size]
if File.directory?(file)
form_files << HTTP::FormData::Part.new(
"",
content_type: 'application/x-directory',
filename: filename
)
else
form_files << HTTP::FormData::File.new(file, filename: filename)
end
end
response = request(client, "/add?recursive=true",
{form: {file: form_files }})
response.body.to_s.split("\n").map { |s| JSON.parse s }
end
|