zfs: glob mapping for complete wildcard ("*")

This commit is contained in:
Christian Schwarz
2017-04-30 16:13:05 +02:00
parent 2e6dc26993
commit ac5a911c64
2 changed files with 33 additions and 4 deletions
+19 -4
View File
@@ -35,7 +35,16 @@ func (p DatasetPath) ToString() string {
return strings.Join(p, "/")
}
func (p DatasetPath) Empty() bool {
return len(p) == 0
}
var EmptyDatasetPath DatasetPath = []string{}
func NewDatasetPath(s string) (p DatasetPath, err error) {
if s == "" {
return EmptyDatasetPath, nil // the empty dataset path
}
// TODO validation
return toDatasetPath(s), nil
}
@@ -60,11 +69,17 @@ var ZFS_BINARY string = "zfs"
func zfsList(root string, filter DatasetFilter) (datasets []DatasetPath, err error) {
const ZFS_LIST_FIELD_COUNT = 1
cmd := exec.Command(ZFS_BINARY, "list", "-H", "-r",
args := make([]string, 0, 10)
args = append(args,
"list", "-H", "-r",
"-t", "filesystem,volume",
"-o", "name",
root)
"-o", "name")
if len(root) > 0 {
args = append(args, root)
}
cmd := exec.Command(ZFS_BINARY, args...)
var stdout io.Reader
var stderr io.Reader