mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-28 08:47:42 +08:00
Merge pull request #2202 from noffle/hidden_files-2145
Lets 'ipfs add' include top-level hidden files
This commit is contained in:
@ -2,6 +2,7 @@ package commands
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/cheggaaa/pb"
|
||||
"github.com/ipfs/go-ipfs/core/coreunix"
|
||||
@ -49,7 +50,7 @@ remains to be implemented.
|
||||
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"),
|
||||
cmds.BoolOption(hiddenOptionName, "H", "Include files that are hidden. Only takes effect on recursive add."),
|
||||
cmds.StringOption(chunkerOptionName, "s", "chunking algorithm to use"),
|
||||
cmds.BoolOption(pinOptionName, "Pin this object when adding. Default true"),
|
||||
},
|
||||
@ -147,8 +148,20 @@ remains to be implemented.
|
||||
fileAdder.Silent = silent
|
||||
|
||||
addAllAndPin := func(f files.File) error {
|
||||
if err := fileAdder.AddFile(f); err != nil {
|
||||
return err
|
||||
// Iterate over each top-level file and add individually. Otherwise the
|
||||
// single files.File f is treated as a directory, affecting hidden file
|
||||
// semantics.
|
||||
for {
|
||||
file, err := f.NextFile()
|
||||
if err == io.EOF {
|
||||
// Finished the list of files.
|
||||
break
|
||||
} else if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := fileAdder.AddFile(file); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if hash {
|
||||
|
@ -359,11 +359,7 @@ func (adder *Adder) addFile(file files.File) error {
|
||||
return err
|
||||
}
|
||||
|
||||
switch {
|
||||
case files.IsHidden(file) && !adder.Hidden:
|
||||
log.Infof("%s is hidden, skipping", file.FileName())
|
||||
return &hiddenFileError{file.FileName()}
|
||||
case file.IsDirectory():
|
||||
if file.IsDirectory() {
|
||||
return adder.addDir(file)
|
||||
}
|
||||
|
||||
@ -417,11 +413,13 @@ func (adder *Adder) addDir(dir files.File) error {
|
||||
break
|
||||
}
|
||||
|
||||
err = adder.addFile(file)
|
||||
if _, ok := err.(*hiddenFileError); ok {
|
||||
// hidden file error, skip file
|
||||
// Skip hidden files when adding recursively, unless Hidden is enabled.
|
||||
if files.IsHidden(file) && !adder.Hidden {
|
||||
log.Infof("%s is hidden, skipping", file.FileName())
|
||||
continue
|
||||
} else if err != nil {
|
||||
}
|
||||
err = adder.addFile(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +48,17 @@ test_add_skip() {
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success "'ipfs add' includes hidden files given explicitly even without --hidden" '
|
||||
mkdir -p mountdir/dotfiles &&
|
||||
echo "set nocompatible" > mountdir/dotfiles/.vimrc
|
||||
cat >expected <<-\EOF &&
|
||||
added QmT4uMRDCN7EMpFeqwvKkboszbqeW1kWVGrBxBuCGqZcQc .vimrc
|
||||
EOF
|
||||
ipfs add mountdir/dotfiles/.vimrc >actual
|
||||
cat actual
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
}
|
||||
|
||||
# should work offline
|
||||
|
Reference in New Issue
Block a user