func NewFile(sysFile system.File, config util.Config) (*File, error) { path := sysFile.Path() exists, _ := sysFile.Exists() f := &File{ Path: path, Exists: exists, Contains: []string{}, } if !contains(config.IgnoreList, "mode") { if mode, err := sysFile.Mode(); err == nil { f.Mode = mode } } if !contains(config.IgnoreList, "owner") { if owner, err := sysFile.Owner(); err == nil { f.Owner = owner } } if !contains(config.IgnoreList, "group") { if group, err := sysFile.Group(); err == nil { f.Group = group } } if !contains(config.IgnoreList, "linked-to") { if linkedTo, err := sysFile.LinkedTo(); err == nil { f.LinkedTo = linkedTo } } if !contains(config.IgnoreList, "filetype") { if filetype, err := sysFile.Filetype(); err == nil { f.Filetype = filetype } } if !contains(config.IgnoreList, "size") { if size, err := sysFile.Size(); err == nil { f.Size = size } } return f, nil }