main: move and rename checkDir*() helper
To avoid confusion with fsck, rename to isDir*() and move the functions into init_dir.go.
This commit is contained in:
parent
5da5e467a6
commit
85056def90
36
checkdir.go
36
checkdir.go
@ -1,36 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
)
|
|
||||||
|
|
||||||
// checkDirEmpty - check if "dir" exists and is an empty directory.
|
|
||||||
// Returns an *os.PathError if Stat() on the path fails.
|
|
||||||
func checkDirEmpty(dir string) error {
|
|
||||||
err := checkDir(dir)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
entries, err := ioutil.ReadDir(dir)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if len(entries) == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return fmt.Errorf("directory %s not empty", dir)
|
|
||||||
}
|
|
||||||
|
|
||||||
// checkDir - check if "dir" exists and is a directory
|
|
||||||
func checkDir(dir string) error {
|
|
||||||
fi, err := os.Stat(dir)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !fi.IsDir() {
|
|
||||||
return fmt.Errorf("%s is not a directory", dir)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
33
init_dir.go
33
init_dir.go
@ -1,6 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
@ -12,6 +14,35 @@ import (
|
|||||||
"github.com/rfjakob/gocryptfs/internal/tlog"
|
"github.com/rfjakob/gocryptfs/internal/tlog"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// isDirEmpty checks if "dir" exists and is an empty directory.
|
||||||
|
// Returns an *os.PathError if Stat() on the path fails.
|
||||||
|
func isDirEmpty(dir string) error {
|
||||||
|
err := isDir(dir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
entries, err := ioutil.ReadDir(dir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(entries) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return fmt.Errorf("directory %s not empty", dir)
|
||||||
|
}
|
||||||
|
|
||||||
|
// isDir checks if "dir" exists and is a directory.
|
||||||
|
func isDir(dir string) error {
|
||||||
|
fi, err := os.Stat(dir)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !fi.IsDir() {
|
||||||
|
return fmt.Errorf("%s is not a directory", dir)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// initDir prepares a directory for use as a gocryptfs storage directory.
|
// initDir prepares a directory for use as a gocryptfs storage directory.
|
||||||
// In forward mode, this means creating the gocryptfs.conf and gocryptfs.diriv
|
// In forward mode, this means creating the gocryptfs.conf and gocryptfs.diriv
|
||||||
// files in an empty directory.
|
// files in an empty directory.
|
||||||
@ -26,7 +57,7 @@ func initDir(args *argContainer) {
|
|||||||
os.Exit(exitcodes.Init)
|
os.Exit(exitcodes.Init)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
err = checkDirEmpty(args.cipherdir)
|
err = isDirEmpty(args.cipherdir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tlog.Fatal.Printf("Invalid cipherdir: %v", err)
|
tlog.Fatal.Printf("Invalid cipherdir: %v", err)
|
||||||
os.Exit(exitcodes.Init)
|
os.Exit(exitcodes.Init)
|
||||||
|
2
main.go
2
main.go
@ -174,7 +174,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
// Check that CIPHERDIR exists
|
// Check that CIPHERDIR exists
|
||||||
args.cipherdir, _ = filepath.Abs(flagSet.Arg(0))
|
args.cipherdir, _ = filepath.Abs(flagSet.Arg(0))
|
||||||
err = checkDir(args.cipherdir)
|
err = isDir(args.cipherdir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
tlog.Fatal.Printf("Invalid cipherdir: %v", err)
|
tlog.Fatal.Printf("Invalid cipherdir: %v", err)
|
||||||
os.Exit(exitcodes.CipherDir)
|
os.Exit(exitcodes.CipherDir)
|
||||||
|
4
mount.go
4
mount.go
@ -58,9 +58,9 @@ func doMount(args *argContainer) {
|
|||||||
os.Exit(exitcodes.MountPoint)
|
os.Exit(exitcodes.MountPoint)
|
||||||
}
|
}
|
||||||
if args.nonempty {
|
if args.nonempty {
|
||||||
err = checkDir(args.mountpoint)
|
err = isDir(args.mountpoint)
|
||||||
} else {
|
} else {
|
||||||
err = checkDirEmpty(args.mountpoint)
|
err = isDirEmpty(args.mountpoint)
|
||||||
// OSXFuse will create the mountpoint for us ( https://github.com/rfjakob/gocryptfs/issues/194 )
|
// OSXFuse will create the mountpoint for us ( https://github.com/rfjakob/gocryptfs/issues/194 )
|
||||||
if runtime.GOOS == "darwin" && os.IsNotExist(err) {
|
if runtime.GOOS == "darwin" && os.IsNotExist(err) {
|
||||||
tlog.Info.Printf("Mountpoint %q does not exist, but should be created by OSXFuse",
|
tlog.Info.Printf("Mountpoint %q does not exist, but should be created by OSXFuse",
|
||||||
|
Loading…
Reference in New Issue
Block a user