Skip to content

Commit

Permalink
Add Defaults to ipfs add
Browse files Browse the repository at this point in the history
I didn't bother with Chunker, because I think that is a much wider PR. These should all be solid, though. Redid some of the logic to make it smoother.

Part of #2484.

License: MIT
Signed-off-by: Richard Littauer <richard.littauer@gmail.com>
  • Loading branch information
RichardLitt authored and Kubuxu committed May 19, 2016
1 parent 45836c4 commit 3d6ead0
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 30 deletions.
46 changes: 19 additions & 27 deletions core/commands/add.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,15 @@ const (

var AddCmd = &cmds.Command{
Helptext: cmds.HelpText{
Tagline: "Add a file or directory to ipfs.",
Tagline: "Add a file to ipfs.",
Synopsis: `ipfs add <path> [--quiet | -q] [--silent] [--progress | -p]
[--trickle |-t] [--wrap-with-directory | -w] [--hidden | -H]
[--only-hash | -n] [--chunker | -s] [--pin] [--recursive | -r]
`,
ShortDescription: `
Adds contents of <path> to ipfs. Use -r to add directories (recursively).
Adds contents of <path> to ipfs. Use -r to add directories.
Note that directories are added recursively, to form the ipfs
MerkleDAG.
`,
LongDescription: `
Adds contents of <path> to ipfs. Use -r to add directories.
Expand Down Expand Up @@ -61,29 +67,21 @@ You can now refer to the added file in a gateway, like so:
},
Options: []cmds.Option{
cmds.OptionRecursivePath, // a builtin option that allows recursive paths (-r, --recursive)
cmds.BoolOption(quietOptionName, "q", "Write minimal output."),
cmds.BoolOption(silentOptionName, "Write no output."),
cmds.BoolOption(progressOptionName, "p", "Stream progress data."),
cmds.BoolOption(trickleOptionName, "t", "Use trickle-dag format for dag generation."),
cmds.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk."),
cmds.BoolOption(wrapOptionName, "w", "Wrap files with a directory object."),
cmds.BoolOption(hiddenOptionName, "H", "Include files that are hidden. Only takes effect on recursive add."),
cmds.BoolOption(quietOptionName, "q", "Write minimal output.").Default(false),
cmds.BoolOption(silentOptionName, "Write no output.").Default(false),
cmds.BoolOption(progressOptionName, "p", "Stream progress data.").Default(true),
cmds.BoolOption(trickleOptionName, "t", "Use trickle-dag format for dag generation.").Default(false),
cmds.BoolOption(onlyHashOptionName, "n", "Only chunk and hash - do not write to disk.").Default(false),
cmds.BoolOption(wrapOptionName, "w", "Wrap files with a directory object.").Default(false),
cmds.BoolOption(hiddenOptionName, "H", "Include files that are hidden. Only takes effect on recursive add.").Default(false),
cmds.StringOption(chunkerOptionName, "s", "Chunking algorithm to use."),
cmds.BoolOption(pinOptionName, "Pin this object when adding. Default: true."),
cmds.BoolOption(pinOptionName, "Pin this object when adding.").Default(true),
},
PreRun: func(req cmds.Request) error {
if quiet, _, _ := req.Option(quietOptionName).Bool(); quiet {
return nil
}

// ipfs cli progress bar defaults to true
progress, found, _ := req.Option(progressOptionName).Bool()
if !found {
progress = true
}

req.SetOption(progressOptionName, progress)

sizeFile, ok := req.Files().(files.SizeFile)
if !ok {
// we don't need to error, the progress bar just won't know how big the files are
Expand Down Expand Up @@ -129,11 +127,7 @@ You can now refer to the added file in a gateway, like so:
hidden, _, _ := req.Option(hiddenOptionName).Bool()
silent, _, _ := req.Option(silentOptionName).Bool()
chunker, _, _ := req.Option(chunkerOptionName).String()
dopin, pin_found, _ := req.Option(pinOptionName).Bool()

if !pin_found { // default
dopin = true
}
dopin, _, _ := req.Option(pinOptionName).Bool()

if hash {
nilnode, err := core.NewNode(n.Context(), &core.BuildCfg{
Expand Down Expand Up @@ -220,7 +214,7 @@ You can now refer to the added file in a gateway, like so:
return
}

progress, prgFound, err := req.Option(progressOptionName).Bool()
progress, _, err := req.Option(progressOptionName).Bool()
if err != nil {
res.SetError(u.ErrCast(), cmds.ErrNormal)
return
Expand All @@ -233,9 +227,7 @@ You can now refer to the added file in a gateway, like so:
}

var showProgressBar bool
if prgFound {
showProgressBar = progress
} else if !quiet && !silent {
if !progress && !quiet && !silent {
showProgressBar = true
}

Expand Down
12 changes: 9 additions & 3 deletions test/sharness/t0040-add-and-cat.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,15 @@ test_description="Test add and cat commands"
client_err_add() {
printf "$@\n\n"
echo 'USAGE
ipfs add <path>... - Add a file or directory to ipfs.
ipfs add <path>... - Add a file to ipfs.
Adds contents of <path> to ipfs. Use -r to add directories (recursively).
ipfs add <path> [--quiet | -q] [--silent] [--progress | -p]
[--trickle |-t] [--wrap-with-directory | -w] [--hidden | -H]
[--only-hash | -n] [--chunker | -s] [--pin] [--recursive | -r]
Adds contents of <path> to ipfs. Use -r to add directories.
Note that directories are added recursively, to form the ipfs
MerkleDAG.
Use '"'"'ipfs add --help'"'"' for more information about this command.
'
Expand Down Expand Up @@ -360,7 +366,7 @@ test_add_cat_5MB

test_add_cat_expensive

test_add_named_pipe " Post http://$API_ADDR/api/v0/add?encoding=json&progress=true&r=true&stream-channels=true:"
test_add_named_pipe " Post http://$API_ADDR/api/v0/add?encoding=json&r=true&stream-channels=true:"

test_kill_ipfs_daemon

Expand Down

0 comments on commit 3d6ead0

Please sign in to comment.