1
0
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:
Steven Allen
2018-09-13 21:44:41 +00:00
committed by GitHub
3 changed files with 35 additions and 1 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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() {