MCPcopy
hub / github.com/wavetermdev/waveterm / ListAllEditableApps

Function ListAllEditableApps

pkg/waveappstore/waveappstore.go:540–616  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

538}
539
540func ListAllEditableApps() ([]wshrpc.AppInfo, error) {
541 homeDir := wavebase.GetHomeDir()
542 waveappsDir := filepath.Join(homeDir, "waveapps")
543
544 if _, err := os.Stat(waveappsDir); os.IsNotExist(err) {
545 return []wshrpc.AppInfo{}, nil
546 }
547
548 localApps := make(map[string]bool)
549 draftApps := make(map[string]bool)
550
551 localPath := filepath.Join(waveappsDir, AppNSLocal)
552 if localEntries, err := os.ReadDir(localPath); err == nil {
553 for _, app := range localEntries {
554 if app.IsDir() {
555 appName := app.Name()
556 appId := MakeAppId(AppNSLocal, appName)
557 if err := ValidateAppId(appId); err == nil {
558 localApps[appName] = true
559 }
560 }
561 }
562 }
563
564 draftPath := filepath.Join(waveappsDir, AppNSDraft)
565 if draftEntries, err := os.ReadDir(draftPath); err == nil {
566 for _, app := range draftEntries {
567 if app.IsDir() {
568 appName := app.Name()
569 appId := MakeAppId(AppNSDraft, appName)
570 if err := ValidateAppId(appId); err == nil {
571 draftApps[appName] = true
572 }
573 }
574 }
575 }
576
577 allAppNames := make(map[string]bool)
578 for appName := range localApps {
579 allAppNames[appName] = true
580 }
581 for appName := range draftApps {
582 allAppNames[appName] = true
583 }
584
585 var appInfos []wshrpc.AppInfo
586 for appName := range allAppNames {
587 var appId string
588 var manifestAppId string
589 if localApps[appName] {
590 appId = MakeAppId(AppNSLocal, appName)
591 } else {
592 appId = MakeAppId(AppNSDraft, appName)
593 }
594
595 if draftApps[appName] {
596 manifestAppId = MakeAppId(AppNSDraft, appName)
597 } else {

Callers 1

Calls 8

GetHomeDirFunction · 0.92
MakeAppIdFunction · 0.85
ValidateAppIdFunction · 0.85
GetAppModTimeFunction · 0.85
ReadAppManifestFunction · 0.85
StatMethod · 0.80
IsDirMethod · 0.45
NameMethod · 0.45

Tested by

no test coverage detected