Documentation ¶
Overview ¶
Package fileutil contains utilities for working with the file system.
Package fileutil contains utilities for working with the file system.
Package fileutil contains utilities for working with the file system.
Index ¶
- Constants
- func BuildPath(root string, elements ...string) string
- func BuildS3Path(root string, elements ...string) string
- func DeleteDirectory(dirName string) (err error)
- func DeleteFile(filepath string) (err error)
- func Exists(filePath string) bool
- func GetDirectoryNames(srcPath string) (directories []string, err error)
- func GetFileNames(srcPath string) (files []string, err error)
- func Harden(path string) (err error)
- func HardenDataFolder() error
- func HardenedWriteFile(filename string, data []byte) (err error)
- func IsDirEmpty(location string) (bool, error)
- func IsDirectory(srcPath string) bool
- func IsFile(srcPath string) bool
- func LocalFileExist(path string) (bool, error)
- func MakeDirs(destinationDir string) (err error)
- func MakeDirsWithExecuteAccess(destinationDir string) (err error)
- func MoveAndRenameFile(srcPath, originalName, dstPath, newName string) (result bool, err error)
- func MoveFile(filename, srcPath, dstPath string) (result bool, err error)
- func ReadAllText(filePath string) (text string, err error)
- func ReadDir(location string) ([]os.FileInfo, error)
- func RecursivelyHarden(path string) error
- func Uncompress(src, dest string) error
- func WriteAllText(filePath string, text string) (err error)
- func WriteIntoFileWithPermissions(absolutePath, content string, perm os.FileMode) (result bool, err error)
- type DiskSpaceInfo
Examples ¶
Constants ¶
const (
RWPermission = 0600
)
Variables ¶
This section is empty.
Functions ¶
func BuildPath ¶
BuildPath joins the orchestration directory path with valid components.
Example ¶
orchestrationDirectory := "/Users/" // Path with invalid char name1 := "Fix:ThisPath" content1 := BuildPath(orchestrationDirectory, name1) fmt.Println(content1) // path with no invalid char name2 := "DoNotFixThisPath" content2 := BuildPath(orchestrationDirectory, name2) fmt.Println(content2) // empty path should not return error name3 := "" content3 := BuildPath("", name3) fmt.Println(content3) // Path with several invalid chars name4 := "Fix:ThisPath1" name5 := "Fix:ThisPath2" content4 := BuildPath(orchestrationDirectory, name4, name5) fmt.Println(content4)
Output: /Users/FixThisPath /Users/DoNotFixThisPath /Users/FixThisPath1/FixThisPath2
func BuildS3Path ¶
BuildS3Path joins the root directory path with valid components.
func DeleteDirectory ¶
DeleteDirectory deletes a directory and all its content.
func DeleteFile ¶
DeleteFile deletes the specified file
func Exists ¶
Exists returns true if the given file exists, false otherwise, ignoring any underlying error
Example ¶
path := filepath.Join("artifact", "testdata", "CheckMyHash.txt") content := Exists(path) fmt.Println(content)
Output: true
func GetDirectoryNames ¶
GetDirectoryNames returns the names of all directories under a give srcPath
func GetFileNames ¶
GetFileNames returns the names of all non-directories under a give srcPath
func HardenDataFolder ¶
func HardenDataFolder() error
HardenDataFolder sets permission of %PROGRAM_DATA% folder for Windows. In Linux, each components handles the permission of its data.
func HardenedWriteFile ¶
HardenedWriteFile calls ioutil.WriteFile and guarantees a hardened permission control. If the file already exists, it hardens the permissions before writing data to it.
func IsDirEmpty ¶
IsDirEmpty returns true if the given directory is empty else it returns false
Example ¶
path := filepath.Join("artifact", "testdata") content, err := IsDirEmpty(path) if err != nil { log.Fatalf("error: %v", err) } fmt.Println(content)
Output: false
func IsDirectory ¶
IsDirectory returns true or false depending if given srcPath is directory or not
Example ¶
path := filepath.Join("artifact", "testdata", "CheckMyHash.txt") content := IsDirectory(path) fmt.Println(content)
Output: false
func IsFile ¶
IsFile returns true or false depending if given srcPath is a regular file or not
Example ¶
path := filepath.Join("artifact", "testdata", "CheckMyHash.txt") content := IsFile(path) fmt.Println(content)
Output: true
func LocalFileExist ¶
LocalFileExist returns true if the given file exists, false otherwise.
Example ¶
// file exists path := filepath.Join("artifact", "testdata", "CheckMyHash.txt") content, err := LocalFileExist(path) if err != nil { log.Fatalf("error: %v", err) } fmt.Println(content) // file does not exist path = filepath.Join("testdata", "blah") content, err = LocalFileExist(path) if err != nil { log.Fatalf("error: %v", err) } fmt.Println(content)
Output: true false
func MakeDirsWithExecuteAccess ¶
MakeDirsWithExecuteAccess create the directories along the path if missing.
func MoveAndRenameFile ¶
MoveAndRenameFile moves a file from the srcPath directory to dstPath directory and gives it a new name
func MoveFile ¶
MoveFile moves file from srcPath directory to dstPath directory only if both directories exist
func ReadAllText ¶
ReadAllText reads all content from the specified file
Example ¶
// valid file path := filepath.Join("artifact", "testdata", "CheckMyHash.txt") content, err := ReadAllText(path) if err != nil { log.Fatalf("error: %v", err) } fmt.Println(content) // invalid file path = filepath.Join("testdata", "invalid.txt") content, err = ReadAllText(path) if err != nil { log.Fatalf("error: %v", err) } fmt.Println(content)
Output: Will you please check my hash? Will you please check my hash? Will you please check my hash?
func RecursivelyHarden ¶
RecursivelyHarden the files and directory under the specified path.
func WriteAllText ¶
WriteAllText writes all text content to the specified file
Types ¶
type DiskSpaceInfo ¶
DiskSpaceInfo stores the available, free, and total bytes
func GetDiskSpaceInfo ¶
func GetDiskSpaceInfo() (diskSpaceInfo DiskSpaceInfo, err error)
GetDiskSpaceInfo returns DiskSpaceInfo with available, free, and total bytes from system disk space