func mapLocal(localSnap *snap.Info, snapst *snapstate.SnapState) map[string]interface{} { status := "installed" if snapst.Active && localSnap.Revision == snapst.Current { status = "active" } apps := make([]appJSON, 0, len(localSnap.Apps)) for _, app := range localSnap.Apps { apps = append(apps, appJSON{ Name: app.Name, }) } return map[string]interface{}{ "description": localSnap.Description(), "developer": localSnap.Developer, "icon": snapIcon(localSnap), "id": localSnap.SnapID, "install-date": snapDate(localSnap), "installed-size": localSnap.Size, "name": localSnap.Name(), "revision": localSnap.Revision, "status": status, "summary": localSnap.Summary(), "type": string(localSnap.Type), "version": localSnap.Version, "channel": localSnap.Channel, "confinement": localSnap.Confinement, "devmode": snapst.DevMode(), "trymode": snapst.TryMode(), "private": localSnap.Private, "apps": apps, "broken": localSnap.Broken, } }