mirror of
https://github.com/ipfs/kubo.git
synced 2025-05-22 01:17:11 +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"
|
progressOptionName = "progress"
|
||||||
trickleOptionName = "trickle"
|
trickleOptionName = "trickle"
|
||||||
wrapOptionName = "wrap-with-directory"
|
wrapOptionName = "wrap-with-directory"
|
||||||
|
stdinPathName = "stdin-name"
|
||||||
hiddenOptionName = "hidden"
|
hiddenOptionName = "hidden"
|
||||||
onlyHashOptionName = "only-hash"
|
onlyHashOptionName = "only-hash"
|
||||||
chunkerOptionName = "chunker"
|
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(trickleOptionName, "t", "Use trickle-dag format for dag generation."),
|
||||||
cmdkit.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk."),
|
cmdkit.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk."),
|
||||||
cmdkit.BoolOption(wrapOptionName, "w", "Wrap files with a directory object."),
|
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.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.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),
|
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)
|
hashFunStr, _ := req.Options[hashOptionName].(string)
|
||||||
inline, _ := req.Options[inlineOptionName].(bool)
|
inline, _ := req.Options[inlineOptionName].(bool)
|
||||||
inlineLimit, _ := req.Options[inlineLimitOptionName].(int)
|
inlineLimit, _ := req.Options[inlineLimitOptionName].(int)
|
||||||
|
pathName, _ := req.Options[stdinPathName].(string)
|
||||||
|
|
||||||
// The arguments are subject to the following constraints.
|
// 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.Silent = silent
|
||||||
fileAdder.RawLeaves = rawblks
|
fileAdder.RawLeaves = rawblks
|
||||||
fileAdder.NoCopy = nocopy
|
fileAdder.NoCopy = nocopy
|
||||||
|
fileAdder.Name = pathName
|
||||||
fileAdder.CidBuilder = prefix
|
fileAdder.CidBuilder = prefix
|
||||||
|
|
||||||
if inline {
|
if inline {
|
||||||
|
@ -83,6 +83,7 @@ type Adder struct {
|
|||||||
RawLeaves bool
|
RawLeaves bool
|
||||||
Silent bool
|
Silent bool
|
||||||
Wrap bool
|
Wrap bool
|
||||||
|
Name string
|
||||||
NoCopy bool
|
NoCopy bool
|
||||||
Chunker string
|
Chunker string
|
||||||
root ipld.Node
|
root ipld.Node
|
||||||
@ -470,8 +471,16 @@ func (adder *Adder) addFile(file files.File) error {
|
|||||||
return err
|
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
|
// patch it into the root
|
||||||
return adder.addNode(dagnode, file.FileName())
|
return adder.addNode(dagnode, addFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (adder *Adder) addDir(dir files.File) error {
|
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_expect_success "make sure it looks good" '
|
||||||
test_cmp zero-length-file zero-length-file_out
|
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() {
|
test_add_cat_5MB() {
|
||||||
|
Reference in New Issue
Block a user