fileinfo.go (1629B)
1 package jira 2 3 import ( 4 "io/fs" 5 "strings" 6 "time" 7 ) 8 9 func (is *Issue) Name() string { 10 _, number, found := strings.Cut(is.Key, "-") 11 if !found { 12 return is.Key 13 } 14 return number 15 } 16 17 func (is *Issue) Size() int64 { return int64(len(printIssue(is))) } 18 func (is *Issue) Mode() fs.FileMode { return 0o444 | fs.ModeDir } 19 func (is *Issue) ModTime() time.Time { return is.Updated } 20 func (is *Issue) IsDir() bool { return is.Mode().IsDir() } 21 func (is *Issue) Sys() any { return nil } 22 23 func (c *Comment) Name() string { return c.ID } 24 func (c *Comment) Size() int64 { return int64(len(printComment(c))) } 25 func (c *Comment) Mode() fs.FileMode { return 0o444 } 26 func (c *Comment) ModTime() time.Time { return c.Updated } 27 func (c *Comment) IsDir() bool { return c.Mode().IsDir() } 28 func (c *Comment) Sys() any { return nil } 29 30 func (p *Project) Name() string { return p.Key } 31 func (p *Project) Size() int64 { return -1 } 32 func (p *Project) Mode() fs.FileMode { return 0o444 | fs.ModeDir } 33 func (p *Project) ModTime() time.Time { return time.Time{} } 34 func (p *Project) IsDir() bool { return p.Mode().IsDir() } 35 func (p *Project) Sys() any { return nil } 36 37 type stat struct { 38 name string 39 size int64 40 mode fs.FileMode 41 mtime time.Time 42 } 43 44 func (s stat) Name() string { return s.name } 45 func (s stat) Size() int64 { return s.size } 46 func (s stat) Mode() fs.FileMode { return s.mode } 47 func (s stat) ModTime() time.Time { return s.mtime } 48 func (s stat) IsDir() bool { return s.Mode().IsDir() } 49 func (s stat) Sys() any { return nil }