本文整理汇总了Golang中os.Stat函数的典型用法代码示例。如果您正苦于以下问题:Golang Stat函数的具体用法?Golang Stat怎么用?Golang Stat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Stat函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestSetUpAndTearDown
func TestSetUpAndTearDown(t *testing.T) {
tempDir, err := ioutil.TempDir("", "CreateVolumes")
if err != nil {
t.Errorf("Unexpected error: %v", err)
}
defer os.RemoveAll(tempDir)
fakeID := "my-id"
type VolumeTester interface {
Builder
Cleaner
}
volumes := []VolumeTester{
&EmptyDir{"empty", fakeID, tempDir},
&GCEPersistentDisk{"pd", fakeID, tempDir, "pd-disk", "ext4", "", false, &MockDiskUtil{}, &MockMounter{}},
}
for _, vol := range volumes {
err = vol.SetUp()
path := vol.GetPath()
if err != nil {
t.Errorf("Unexpected error: %v", err)
}
if _, err := os.Stat(path); os.IsNotExist(err) {
t.Errorf("SetUp() failed, volume path not created: %v", path)
}
err = vol.TearDown()
if err != nil {
t.Errorf("Unexpected error: %v", err)
}
if _, err := os.Stat(path); !os.IsNotExist(err) {
t.Errorf("TearDown() failed, original volume path not properly removed: %v", path)
}
}
}
示例2: UnixAudienceListener
func UnixAudienceListener(sockaddr string) {
fi, err := os.Stat(sockaddr)
if err == nil {
fmode := fi.Mode()
if fmode&os.ModeType == os.ModeSocket {
o.Warn("Removing stale socket at %s", sockaddr)
os.Remove(sockaddr)
} else {
o.Fail("%s exists and is not a socket", sockaddr)
}
}
laddr, err := net.ResolveUnixAddr("unix", sockaddr)
o.MightFail(err, "Couldn't resolve audience socket address")
l, err := net.ListenUnix("unix", laddr)
o.MightFail(err, "Couldn't start audience unixsock listener")
// Fudge the permissions on the unixsock!
fi, err = os.Stat(sockaddr)
if err == nil {
os.Chmod(sockaddr, fi.Mode()|0777)
} else {
o.Warn("Couldn't fudge permission on audience socket: %s", err)
}
// make sure we clean up the unix socket when we die.
defer l.Close()
defer os.Remove(sockaddr)
AudienceListener(l)
}
示例3: backupFiles
func backupFiles(versionID string, wg *sync.WaitGroup) {
defer wg.Done()
if _, err := os.Stat(backupDir); err != nil {
if os.IsNotExist(err) {
makeBackupDir()
}
}
if debug {
fmt.Printf("backupFiles - %s\n", versionID)
}
log.Printf("backupFiles - %s\n", versionID)
fileName := fmt.Sprintf("%s%s%s_backup", backupDir, string(os.PathSeparator), versionID)
worldDir := fmt.Sprintf("%s", worldDir)
if _, err := os.Stat(backupDir); err != nil {
if os.IsNotExist(err) {
if debug {
fmt.Println("Nothing to backup right now.")
}
log.Println("Nothing to backup right now.")
} else {
zip := new(archivex.ZipFile)
zip.Create(fileName)
fmt.Printf("worldDir - %s\n", worldDir)
fmt.Printf("fileName - %s\n", fileName)
zip.AddAll(worldDir, true)
fmt.Printf("after addall\n")
zip.Close()
}
}
}
示例4: TestTempDirCreate
func TestTempDirCreate(t *testing.T) {
if err := InitDir(); err != nil {
t.Fatalf("Error during creating the temp directory: %s\n", err.Error())
}
if _, err := os.Stat(aufsTempDir); err != nil {
if os.IsNotExist(err) {
t.Fatalf("Temp dir create failed")
} else {
t.Fatalf("Temp dir create failed, %s", err.Error())
}
}
if err := InitFile(); err != nil {
t.Fatalf("Error during creating the test file: %s\n", err.Error())
}
if _, err := os.Stat(testFile3); err != nil {
if os.IsNotExist(err) {
t.Fatalf("Temp dir create failed")
} else {
t.Fatalf("Temp dir create failed, %s", err.Error())
}
}
if err := Cleanup(); err != nil {
t.Fatalf("Error during removing files and dirs: %s\n", err.Error())
}
}
示例5: certKeyXor
func certKeyXor(certFile, keyFile string) (bool, []error) {
certInfo, err := os.Stat(certFile)
certExists := !os.IsNotExist(err)
certIsFile := certExists && certInfo.Mode().IsRegular()
keyInfo, err := os.Stat(keyFile)
keyExists := !os.IsNotExist(err)
keyIsFile := keyExists && keyInfo.Mode().IsRegular()
errors := make([]error, 0)
if certExists && certIsFile && keyExists && keyIsFile {
return true, errors
}
if !certExists && !keyExists {
return false, errors
}
if !certExists {
errors = append(errors, fmt.Errorf("Cert %s does not exist", certFile))
} else if !certIsFile {
errors = append(errors, fmt.Errorf("Cert %s is not a file", certFile))
}
if !keyExists {
errors = append(errors, fmt.Errorf("Key %s does not exist", keyFile))
} else if !keyIsFile {
errors = append(errors, fmt.Errorf("Key %s is not a file", keyFile))
}
return false, errors
}
示例6: exePath
func exePath() (string, error) {
prog := os.Args[0]
p, err := filepath.Abs(prog)
if err != nil {
return "", err
}
fi, err := os.Stat(p)
if err == nil {
if !fi.Mode().IsDir() {
return p, nil
}
err = fmt.Errorf("%s is directory", p)
}
if filepath.Ext(p) == "" {
p += ".exe"
fi, err := os.Stat(p)
if err == nil {
if !fi.Mode().IsDir() {
return p, nil
}
err = fmt.Errorf("%s is directory", p)
}
}
return "", err
}
示例7: copyFile
func copyFile(src, folder, name string) error {
if _, err := os.Stat(src); os.IsNotExist(err) {
return nil
}
dst := path.Join(folder, name)
if _, err := os.Stat(dst); err == nil {
return nil
}
if err := createDirs(folder); err != nil {
return err
}
srcFile, err := os.Open(src)
if err != nil {
return err
}
defer srcFile.Close()
dstFile, err := os.Create(dst)
if err != nil {
return err
}
defer dstFile.Close()
_, err = io.Copy(dstFile, srcFile)
return err
}
示例8: updateGitFolder
func updateGitFolder(path string) {
fmt.Println()
fmt.Println("Path: " + path)
if _, err := os.Stat(path); os.IsNotExist(err) {
fmt.Println("Not exists! Ignored")
return
}
if err := os.Chdir(path); err != nil {
fmt.Println("Access denied")
return
}
if _, err := os.Stat(".git"); os.IsNotExist(err) {
fmt.Println("Not a GIT folder! Ignored")
return
}
fmt.Println("Revert all changes...")
runCommand(exec.Command("git", "reset", "--hard", "HEAD"))
fmt.Println("Pulling...")
runCommand(exec.Command("git", "pull"))
if _, err := os.Stat("deploy.sh"); err == nil {
fmt.Println("Running external deploy.sh script...")
runCommand(exec.Command("./deploy.sh"))
}
if _, err := os.Stat("build.sh"); err == nil {
fmt.Println("Running external build.sh script...")
runCommand(exec.Command("./build.sh"))
}
fmt.Println("Done")
}
示例9: Verify
func (d *Fusion5Driver) Verify() error {
if _, err := os.Stat(d.AppPath); err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("Fusion application not found at path: %s", d.AppPath)
}
return err
}
if _, err := os.Stat(d.vmrunPath()); err != nil {
if os.IsNotExist(err) {
return fmt.Errorf(
"Critical application 'vmrun' not found at path: %s", d.vmrunPath())
}
return err
}
if _, err := os.Stat(d.vdiskManagerPath()); err != nil {
if os.IsNotExist(err) {
return fmt.Errorf(
"Critical application vdisk manager not found at path: %s",
d.vdiskManagerPath())
}
return err
}
return nil
}
示例10: TestAllocDir_BuildAlloc
// Test that given a set of tasks, each task gets a directory and that directory
// has the shared alloc dir inside of it.
func TestAllocDir_BuildAlloc(t *testing.T) {
tmp, err := ioutil.TempDir("", "AllocDir")
if err != nil {
t.Fatalf("Couldn't create temp dir: %v", err)
}
defer os.RemoveAll(tmp)
d := NewAllocDir(tmp)
defer d.Destroy()
tasks := []*structs.Task{t1, t2}
if err := d.Build(tasks); err != nil {
t.Fatalf("Build(%v) failed: %v", tasks, err)
}
// Check that the AllocDir and each of the task directories exist.
if _, err := os.Stat(d.AllocDir); os.IsNotExist(err) {
t.Fatalf("Build(%v) didn't create AllocDir %v", tasks, d.AllocDir)
}
for _, task := range tasks {
tDir, ok := d.TaskDirs[task.Name]
if !ok {
t.Fatalf("Task directory not found for %v", task.Name)
}
if _, err := os.Stat(tDir); os.IsNotExist(err) {
t.Fatalf("Build(%v) didn't create TaskDir %v", tasks, tDir)
}
}
}
示例11: TestIndexOpen
func TestIndexOpen(t *testing.T) {
repo := createTestRepo(t)
defer cleanupTestRepo(t, repo)
path := repo.Workdir() + "/heyindex"
_, err := os.Stat(path)
if !os.IsNotExist(err) {
t.Fatal("new index file already exists")
}
idx, err := OpenIndex(path)
checkFatal(t, err)
if path != idx.Path() {
t.Fatalf("mismatched index paths, expected %v, got %v", path, idx.Path())
}
err = idx.Write()
checkFatal(t, err)
_, err = os.Stat(path)
if os.IsNotExist(err) {
t.Fatal("new index file did not get written")
}
}
示例12: TestCommandLine
func TestCommandLine(t *testing.T) {
testDir, err := ioutil.TempDir("", "kbbin")
defer os.RemoveAll(testDir)
if err != nil {
t.Fatalf("%s", err)
}
binPath, err := filepath.Abs(os.Args[0])
if err != nil {
t.Fatalf("%s", err)
}
linkPath := filepath.Join(testDir, "kbtest")
// Install
err = installCommandLineForBinPath(binPath, linkPath, true)
if err != nil {
t.Fatalf("%s", err)
}
_, err = os.Stat(linkPath)
if err != nil {
t.Fatalf("%s", err)
}
// Install again
err = installCommandLineForBinPath(binPath, linkPath, true)
if err != nil {
t.Fatalf("%s", err)
}
_, err = os.Stat(linkPath)
if err != nil {
t.Fatalf("%s", err)
}
}
示例13: tryConfigFilePath
func tryConfigFilePath(configFilePath string) (string, error) {
if configFilePath != "" {
configFilePath, _ = filepath.Abs(configFilePath)
if _, err := os.Stat(configFilePath); err == nil {
log.Println("found log file at " + configFilePath)
return configFilePath, nil
} else {
return "", err
}
} else {
posibleConfigFiles := []string{}
if p, e := os.Getwd(); e == nil {
// loop for lighthouse.json from current working directory
posibleConfigFiles = append(posibleConfigFiles, p+"/lighthouse.json")
}
if u, e := user.Current(); e == nil {
// loop for lighthouse.json from current user's home directory
posibleConfigFiles = append(posibleConfigFiles, u.HomeDir+"/lighthouse.json")
}
for _, path := range posibleConfigFiles {
if _, err := os.Stat(path); err == nil {
log.Println("found configuration file at " + path)
return path, nil
}
}
log.Println("no configuration file found. use defalut config.")
// not valid config file found
return "", nil
}
}
示例14: TestAgent_PurgeCheck
func TestAgent_PurgeCheck(t *testing.T) {
config := nextConfig()
dir, agent := makeAgent(t, config)
defer os.RemoveAll(dir)
defer agent.Shutdown()
check := &structs.HealthCheck{
Node: config.NodeName,
CheckID: "mem",
Name: "memory check",
Status: structs.HealthPassing,
}
file := filepath.Join(agent.config.DataDir, checksDir, stringHash(check.CheckID))
if err := agent.AddCheck(check, nil, true, ""); err != nil {
t.Fatalf("err: %v", err)
}
// Not removed
if err := agent.RemoveCheck(check.CheckID, false); err != nil {
t.Fatalf("err: %s", err)
}
if _, err := os.Stat(file); err != nil {
t.Fatalf("err: %s", err)
}
// Removed
if err := agent.RemoveCheck(check.CheckID, true); err != nil {
t.Fatalf("err: %s", err)
}
if _, err := os.Stat(file); !os.IsNotExist(err) {
t.Fatalf("bad: %#v", err)
}
}
示例15: TestAgent_PurgeService
func TestAgent_PurgeService(t *testing.T) {
config := nextConfig()
dir, agent := makeAgent(t, config)
defer os.RemoveAll(dir)
defer agent.Shutdown()
svc := &structs.NodeService{
ID: "redis",
Service: "redis",
Tags: []string{"foo"},
Port: 8000,
}
file := filepath.Join(agent.config.DataDir, servicesDir, stringHash(svc.ID))
if err := agent.AddService(svc, nil, true, ""); err != nil {
t.Fatalf("err: %v", err)
}
// Not removed
if err := agent.RemoveService(svc.ID, false); err != nil {
t.Fatalf("err: %s", err)
}
if _, err := os.Stat(file); err != nil {
t.Fatalf("err: %s", err)
}
// Removed
if err := agent.RemoveService(svc.ID, true); err != nil {
t.Fatalf("err: %s", err)
}
if _, err := os.Stat(file); !os.IsNotExist(err) {
t.Fatalf("bad: %#v", err)
}
}