github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/osutils/autostart/legacy_darwin.go (about) 1 package autostart 2 3 import ( 4 "os" 5 6 "github.com/ActiveState/cli/internal/errs" 7 "github.com/ActiveState/cli/internal/fileutils" 8 "howett.net/plist" 9 ) 10 11 type LegacyPlist struct { 12 ProgramArguments []string `plist:"ProgramArguments"` 13 } 14 15 func isLegacyPlist(path string) (bool, error) { 16 if !fileutils.FileExists(path) { 17 return false, nil 18 } 19 20 reader, err := os.Open(path) 21 if err != nil { 22 return false, errs.Wrap(err, "Could not open plist file") 23 } 24 25 decoder := plist.NewDecoder(reader) 26 var p LegacyPlist 27 err = decoder.Decode(&p) 28 if err != nil { 29 return false, errs.Wrap(err, "Could not decode plist file") 30 } 31 32 return len(p.ProgramArguments) > 1, nil 33 }