cmd: make names of argument parsing functions more consistent
This commit is contained in:
parent
9d8d7ae1f0
commit
291954baba
7 changed files with 37 additions and 34 deletions
59
cmd/cmd.go
59
cmd/cmd.go
|
@ -144,9 +144,10 @@ func ShowVersion() {
|
||||||
fmt.Printf("- go version: %s\n", runtime.Version())
|
fmt.Printf("- go version: %s\n", runtime.Version())
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFsFile creates a dst Fs from a name but may point to a file.
|
// NewFsFile creates a Fs from a name but may point to a file.
|
||||||
//
|
//
|
||||||
// It returns a string with the file name if points to a file
|
// It returns a string with the file name if points to a file
|
||||||
|
// otherwise "".
|
||||||
func NewFsFile(remote string) (fs.Fs, string) {
|
func NewFsFile(remote string) (fs.Fs, string) {
|
||||||
fsInfo, configName, fsPath, err := fs.ParseRemote(remote)
|
fsInfo, configName, fsPath, err := fs.ParseRemote(remote)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -166,12 +167,11 @@ func NewFsFile(remote string) (fs.Fs, string) {
|
||||||
return nil, ""
|
return nil, ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// newFsSrc creates a src Fs from a name
|
// newFsFileAddFilter creates a src Fs from a name
|
||||||
//
|
//
|
||||||
// It returns a string with the file name if limiting to one file
|
// This works the same as NewFsFile however it adds filters to the Fs
|
||||||
//
|
// to limit it to a single file if the remote pointed to a file.
|
||||||
// This can point to a file
|
func newFsFileAddFilter(remote string) (fs.Fs, string) {
|
||||||
func newFsSrc(remote string) (fs.Fs, string) {
|
|
||||||
f, fileName := NewFsFile(remote)
|
f, fileName := NewFsFile(remote)
|
||||||
if fileName != "" {
|
if fileName != "" {
|
||||||
if !filter.Active.InActive() {
|
if !filter.Active.InActive() {
|
||||||
|
@ -189,10 +189,20 @@ func newFsSrc(remote string) (fs.Fs, string) {
|
||||||
return f, fileName
|
return f, fileName
|
||||||
}
|
}
|
||||||
|
|
||||||
// newFsDst creates a dst Fs from a name
|
// NewFsSrc creates a new src fs from the arguments.
|
||||||
|
//
|
||||||
|
// The source can be a file or a directory - if a file then it will
|
||||||
|
// limit the Fs to a single file.
|
||||||
|
func NewFsSrc(args []string) fs.Fs {
|
||||||
|
fsrc, _ := newFsFileAddFilter(args[0])
|
||||||
|
fs.CalculateModifyWindow(fsrc)
|
||||||
|
return fsrc
|
||||||
|
}
|
||||||
|
|
||||||
|
// newFsDir creates an Fs from a name
|
||||||
//
|
//
|
||||||
// This must point to a directory
|
// This must point to a directory
|
||||||
func newFsDst(remote string) fs.Fs {
|
func newFsDir(remote string) fs.Fs {
|
||||||
f, err := fs.NewFs(remote)
|
f, err := fs.NewFs(remote)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.CountError(err)
|
fs.CountError(err)
|
||||||
|
@ -201,10 +211,19 @@ func newFsDst(remote string) fs.Fs {
|
||||||
return f
|
return f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewFsDir creates a new Fs from the arguments
|
||||||
|
//
|
||||||
|
// The argument must point a directory
|
||||||
|
func NewFsDir(args []string) fs.Fs {
|
||||||
|
fdst := newFsDir(args[0])
|
||||||
|
fs.CalculateModifyWindow(fdst)
|
||||||
|
return fdst
|
||||||
|
}
|
||||||
|
|
||||||
// NewFsSrcDst creates a new src and dst fs from the arguments
|
// NewFsSrcDst creates a new src and dst fs from the arguments
|
||||||
func NewFsSrcDst(args []string) (fs.Fs, fs.Fs) {
|
func NewFsSrcDst(args []string) (fs.Fs, fs.Fs) {
|
||||||
fsrc, _ := newFsSrc(args[0])
|
fsrc, _ := newFsFileAddFilter(args[0])
|
||||||
fdst := newFsDst(args[1])
|
fdst := newFsDir(args[1])
|
||||||
fs.CalculateModifyWindow(fdst, fsrc)
|
fs.CalculateModifyWindow(fdst, fsrc)
|
||||||
return fsrc, fdst
|
return fsrc, fdst
|
||||||
}
|
}
|
||||||
|
@ -212,7 +231,7 @@ func NewFsSrcDst(args []string) (fs.Fs, fs.Fs) {
|
||||||
// NewFsSrcDstFiles creates a new src and dst fs from the arguments
|
// NewFsSrcDstFiles creates a new src and dst fs from the arguments
|
||||||
// If src is a file then srcFileName and dstFileName will be non-empty
|
// If src is a file then srcFileName and dstFileName will be non-empty
|
||||||
func NewFsSrcDstFiles(args []string) (fsrc fs.Fs, srcFileName string, fdst fs.Fs, dstFileName string) {
|
func NewFsSrcDstFiles(args []string) (fsrc fs.Fs, srcFileName string, fdst fs.Fs, dstFileName string) {
|
||||||
fsrc, srcFileName = newFsSrc(args[0])
|
fsrc, srcFileName = newFsFileAddFilter(args[0])
|
||||||
// If copying a file...
|
// If copying a file...
|
||||||
dstRemote := args[1]
|
dstRemote := args[1]
|
||||||
// If file exists then srcFileName != "", however if the file
|
// If file exists then srcFileName != "", however if the file
|
||||||
|
@ -240,22 +259,6 @@ func NewFsSrcDstFiles(args []string) (fsrc fs.Fs, srcFileName string, fdst fs.Fs
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewFsSrc creates a new src fs from the arguments
|
|
||||||
func NewFsSrc(args []string) fs.Fs {
|
|
||||||
fsrc, _ := newFsSrc(args[0])
|
|
||||||
fs.CalculateModifyWindow(fsrc)
|
|
||||||
return fsrc
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFsDst creates a new dst fs from the arguments
|
|
||||||
//
|
|
||||||
// Dst fs-es can't point to single files
|
|
||||||
func NewFsDst(args []string) fs.Fs {
|
|
||||||
fdst := newFsDst(args[0])
|
|
||||||
fs.CalculateModifyWindow(fdst)
|
|
||||||
return fdst
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewFsDstFile creates a new dst fs with a destination file name from the arguments
|
// NewFsDstFile creates a new dst fs with a destination file name from the arguments
|
||||||
func NewFsDstFile(args []string) (fdst fs.Fs, dstFileName string) {
|
func NewFsDstFile(args []string) (fdst fs.Fs, dstFileName string) {
|
||||||
dstRemote, dstFileName := fspath.RemoteSplit(args[0])
|
dstRemote, dstFileName := fspath.RemoteSplit(args[0])
|
||||||
|
@ -265,7 +268,7 @@ func NewFsDstFile(args []string) (fdst fs.Fs, dstFileName string) {
|
||||||
if dstFileName == "" {
|
if dstFileName == "" {
|
||||||
log.Fatalf("%q is a directory", args[0])
|
log.Fatalf("%q is a directory", args[0])
|
||||||
}
|
}
|
||||||
fdst = newFsDst(dstRemote)
|
fdst = newFsDir(dstRemote)
|
||||||
fs.CalculateModifyWindow(fdst)
|
fs.CalculateModifyWindow(fdst)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,7 @@ a bit of go code for each one.
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1E6, command, args)
|
cmd.CheckArgs(1, 1E6, command, args)
|
||||||
for i := range args {
|
for i := range args {
|
||||||
f := cmd.NewFsDst(args[i : i+1])
|
f := cmd.NewFsDir(args[i : i+1])
|
||||||
cmd.Run(false, false, command, func() error {
|
cmd.Run(false, false, command, func() error {
|
||||||
return readInfo(f)
|
return readInfo(f)
|
||||||
})
|
})
|
||||||
|
|
|
@ -15,7 +15,7 @@ var commandDefintion = &cobra.Command{
|
||||||
Short: `Make the path if it doesn't already exist.`,
|
Short: `Make the path if it doesn't already exist.`,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
fdst := cmd.NewFsDst(args)
|
fdst := cmd.NewFsDir(args)
|
||||||
cmd.Run(true, false, command, func() error {
|
cmd.Run(true, false, command, func() error {
|
||||||
return operations.Mkdir(fdst, "")
|
return operations.Mkdir(fdst, "")
|
||||||
})
|
})
|
||||||
|
|
|
@ -215,7 +215,7 @@ be copied to the vfs cache before opening with --vfs-cache-mode full.
|
||||||
` + vfs.Help,
|
` + vfs.Help,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(2, 2, command, args)
|
cmd.CheckArgs(2, 2, command, args)
|
||||||
fdst := cmd.NewFsDst(args)
|
fdst := cmd.NewFsDir(args)
|
||||||
|
|
||||||
// Show stats if the user has specifically requested them
|
// Show stats if the user has specifically requested them
|
||||||
if cmd.ShowStats() {
|
if cmd.ShowStats() {
|
||||||
|
|
|
@ -20,7 +20,7 @@ you want to selectively delete files.
|
||||||
`,
|
`,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
fdst := cmd.NewFsDst(args)
|
fdst := cmd.NewFsDir(args)
|
||||||
cmd.Run(true, false, command, func() error {
|
cmd.Run(true, false, command, func() error {
|
||||||
return operations.Purge(fdst, "")
|
return operations.Purge(fdst, "")
|
||||||
})
|
})
|
||||||
|
|
|
@ -18,7 +18,7 @@ Remove the path. Note that you can't remove a path with
|
||||||
objects in it, use purge for that.`,
|
objects in it, use purge for that.`,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
fdst := cmd.NewFsDst(args)
|
fdst := cmd.NewFsDir(args)
|
||||||
cmd.Run(true, false, command, func() error {
|
cmd.Run(true, false, command, func() error {
|
||||||
return operations.Rmdir(fdst, "")
|
return operations.Rmdir(fdst, "")
|
||||||
})
|
})
|
||||||
|
|
|
@ -30,7 +30,7 @@ empty directories in.
|
||||||
`,
|
`,
|
||||||
Run: func(command *cobra.Command, args []string) {
|
Run: func(command *cobra.Command, args []string) {
|
||||||
cmd.CheckArgs(1, 1, command, args)
|
cmd.CheckArgs(1, 1, command, args)
|
||||||
fdst := cmd.NewFsDst(args)
|
fdst := cmd.NewFsDir(args)
|
||||||
cmd.Run(true, false, command, func() error {
|
cmd.Run(true, false, command, func() error {
|
||||||
return operations.Rmdirs(fdst, "", leaveRoot)
|
return operations.Rmdirs(fdst, "", leaveRoot)
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue