func contains(files entities.Files, searchFile *entities.File) bool { for _, file := range files { if file.Path() == searchFile.Path() { return true } } return false }
func (vfs FuseVfs) getLinkName(file *entities.File) string { extension := filepath.Ext(file.Path()) fileName := filepath.Base(file.Path()) linkName := fileName[0 : len(fileName)-len(extension)] suffix := "." + uitoa(file.Id) + extension if len(linkName)+len(suffix) > 255 { linkName = linkName[0 : 255-len(suffix)] } return linkName + suffix }
func expectTags(test *testing.T, store *storage.Storage, file *entities.File, tags ...*entities.Tag) { fileTags, err := store.FileTagsByFileId(file.Id) if err != nil { test.Fatal(err) } if len(fileTags) != len(tags) { test.Fatalf("File '%v' has %v tags but expected %v.", file.Path(), len(fileTags), len(tags)) } for index, filetag := range fileTags { tag := tags[index] if filetag.TagId != tag.Id { test.Fatal("File '%v' is tagged %v but expected %v.", file.Path(), filetag.TagId, tag.Id) } } }
func statusCheckFile(file *entities.File, report *StatusReport) error { relPath := path.Rel(file.Path()) log.Infof(2, "%v: checking file status.", file.Path()) stat, err := os.Stat(file.Path()) if err != nil { switch { case os.IsNotExist(err): log.Infof(2, "%v: file is missing.", file.Path()) report.AddRow(Row{relPath, MISSING}) return nil case os.IsPermission(err): log.Warnf("%v: permission denied.", file.Path()) case strings.Contains(err.Error(), "not a directory"): report.AddRow(Row{relPath, MISSING}) return nil default: return fmt.Errorf("%v: could not stat: %v", file.Path(), err) } } else { if stat.Size() != file.Size || stat.ModTime().UTC() != file.ModTime { log.Infof(2, "%v: file is modified.", file.Path()) report.AddRow(Row{relPath, MODIFIED}) } else { log.Infof(2, "%v: file is unchanged.", file.Path()) report.AddRow(Row{relPath, TAGGED}) } } return nil }