mirror of
https://github.com/ipfs/kubo.git
synced 2025-05-21 08:56:37 +08:00
Merge pull request #5399 from kjzz/zkj/feat
add --name new flag when ipfs adding from stdin
This commit is contained in:
@ -37,6 +37,7 @@ const (
|
||||
progressOptionName = "progress"
|
||||
trickleOptionName = "trickle"
|
||||
wrapOptionName = "wrap-with-directory"
|
||||
stdinPathName = "stdin-name"
|
||||
hiddenOptionName = "hidden"
|
||||
onlyHashOptionName = "only-hash"
|
||||
chunkerOptionName = "chunker"
|
||||
@ -116,6 +117,7 @@ You can now check what blocks have been created by:
|
||||
cmdkit.BoolOption(trickleOptionName, "t", "Use trickle-dag format for dag generation."),
|
||||
cmdkit.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk."),
|
||||
cmdkit.BoolOption(wrapOptionName, "w", "Wrap files with a directory object."),
|
||||
cmdkit.StringOption(stdinPathName, "Assign a name if the file source is stdin."),
|
||||
cmdkit.BoolOption(hiddenOptionName, "H", "Include files that are hidden. Only takes effect on recursive add."),
|
||||
cmdkit.StringOption(chunkerOptionName, "s", "Chunking algorithm, size-[bytes] or rabin-[min]-[avg]-[max]").WithDefault("size-262144"),
|
||||
cmdkit.BoolOption(pinOptionName, "Pin this object when adding.").WithDefault(true),
|
||||
@ -181,6 +183,7 @@ You can now check what blocks have been created by:
|
||||
hashFunStr, _ := req.Options[hashOptionName].(string)
|
||||
inline, _ := req.Options[inlineOptionName].(bool)
|
||||
inlineLimit, _ := req.Options[inlineLimitOptionName].(int)
|
||||
pathName, _ := req.Options[stdinPathName].(string)
|
||||
|
||||
// The arguments are subject to the following constraints.
|
||||
//
|
||||
@ -287,6 +290,7 @@ You can now check what blocks have been created by:
|
||||
fileAdder.Silent = silent
|
||||
fileAdder.RawLeaves = rawblks
|
||||
fileAdder.NoCopy = nocopy
|
||||
fileAdder.Name = pathName
|
||||
fileAdder.CidBuilder = prefix
|
||||
|
||||
if inline {
|
||||
|
@ -83,6 +83,7 @@ type Adder struct {
|
||||
RawLeaves bool
|
||||
Silent bool
|
||||
Wrap bool
|
||||
Name string
|
||||
NoCopy bool
|
||||
Chunker string
|
||||
root ipld.Node
|
||||
@ -470,8 +471,16 @@ func (adder *Adder) addFile(file files.File) error {
|
||||
return err
|
||||
}
|
||||
|
||||
addFileName := file.FileName()
|
||||
addFileInfo, ok := file.(files.FileInfo)
|
||||
if ok {
|
||||
if addFileInfo.AbsPath() == os.Stdin.Name() && adder.Name != "" {
|
||||
addFileName = adder.Name
|
||||
adder.Name = ""
|
||||
}
|
||||
}
|
||||
// patch it into the root
|
||||
return adder.addNode(dagnode, file.FileName())
|
||||
return adder.addNode(dagnode, addFileName)
|
||||
}
|
||||
|
||||
func (adder *Adder) addDir(dir files.File) error {
|
||||
|
@ -184,6 +184,27 @@ test_add_cat_file() {
|
||||
test_expect_success "make sure it looks good" '
|
||||
test_cmp zero-length-file zero-length-file_out
|
||||
'
|
||||
|
||||
test_expect_success "ipfs add --stdin-name" '
|
||||
NAMEHASH="QmdFyxZXsFiP4csgfM5uPu99AvFiKH62CSPDw5TP92nr7w" &&
|
||||
echo "IPFS" | ipfs add --stdin-name file.txt > actual &&
|
||||
echo "added $NAMEHASH file.txt" > expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success "ipfs add --stdin-name -w" '
|
||||
NAMEHASH="QmdFyxZXsFiP4csgfM5uPu99AvFiKH62CSPDw5TP92nr7w" &&
|
||||
echo "IPFS" | ipfs add -w --stdin-name file.txt | head -n1> actual &&
|
||||
echo "added $NAMEHASH file.txt" > expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success "ipfs cat with stdin-name" '
|
||||
NAMEHASH=$(echo "IPFS" | ipfs add -w --stdin-name file.txt -Q) &&
|
||||
ipfs cat /ipfs/$NAMEHASH/file.txt > expected &&
|
||||
echo "IPFS" > actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
}
|
||||
|
||||
test_add_cat_5MB() {
|
||||
|
Reference in New Issue
Block a user