MCPcopy Create free account
hub / github.com/devld/go-drive / _loadAvailableDriveScripts

Method _loadAvailableDriveScripts

server/api_admin_drives.go:141–174  ·  view source on GitHub ↗
(ctx context.Context, forceLoad bool)

Source from the content-addressed store, hash-verified

139}
140
141func (sdr *scriptDrivesRoute) _loadAvailableDriveScripts(ctx context.Context, forceLoad bool) ([]script.AvailableDriveScript, error) {
142 sdr.repoLock.Lock()
143 defer sdr.repoLock.Unlock()
144
145 cacheFile := filepath.Join(sdr.config.TempDir, "drives-repository-cache.json")
146
147 var result []script.AvailableDriveScript = nil
148
149 if !forceLoad {
150 if data, e := os.ReadFile(cacheFile); e == nil {
151 temp := make([]script.AvailableDriveScript, 0)
152 if e := json.Unmarshal(data, &temp); e == nil {
153 result = temp
154 }
155 }
156 }
157
158 if result == nil {
159 scripts, e := script.ListAvailableScriptsFromRepository(ctx, sdr.config.DriveRepositoryURL)
160 if e != nil {
161 return result, e
162 }
163 result = scripts
164
165 data, e := json.Marshal(scripts)
166 if e != nil {
167 return result, e
168 }
169 if e := os.WriteFile(cacheFile, data, 0644); e != nil {
170 return result, e
171 }
172 }
173 return result, nil
174}
175
176func (sdr *scriptDrivesRoute) getAvailableDrives(c *gin.Context) {
177 result, e := sdr._loadAvailableDriveScripts(c.Request.Context(), utils.ToBool(c.Query("force")))

Callers 2

getAvailableDrivesMethod · 0.95
installDriveMethod · 0.95

Calls 3

LockMethod · 0.65
UnlockMethod · 0.65

Tested by

no test coverage detected