MCPcopy Create free account
hub / github.com/dagger/dagger / exportWorkspaceLockToHost

Function exportWorkspaceLockToHost

engine/server/session.go:1788–1817  ·  view source on GitHub ↗
(ctx context.Context, bk *engineutil.Client, ws *core.Workspace, lock *workspace.Lock)

Source from the content-addressed store, hash-verified

1786}
1787
1788func exportWorkspaceLockToHost(ctx context.Context, bk *engineutil.Client, ws *core.Workspace, lock *workspace.Lock) error {
1789 lockBytes, err := lock.Marshal()
1790 if err != nil {
1791 return fmt.Errorf("marshal lock: %w", err)
1792 }
1793
1794 lockPath, err := workspaceLockPath(ws)
1795 if err != nil {
1796 return err
1797 }
1798
1799 tmpFile, err := os.CreateTemp("", "workspace-lock-*")
1800 if err != nil {
1801 return fmt.Errorf("create temp file: %w", err)
1802 }
1803 defer os.Remove(tmpFile.Name())
1804
1805 if _, err := tmpFile.Write(lockBytes); err != nil {
1806 tmpFile.Close()
1807 return fmt.Errorf("write temp file: %w", err)
1808 }
1809 if err := tmpFile.Close(); err != nil {
1810 return fmt.Errorf("close temp file: %w", err)
1811 }
1812
1813 if err := bk.LocalFileExport(ctx, tmpFile.Name(), workspace.LockFileName, lockPath, true); err != nil {
1814 return fmt.Errorf("export lock: %w", err)
1815 }
1816 return nil
1817}
1818
1819func (srv *Server) flushWorkspaceLocks(ctx context.Context, client *daggerClient) error {
1820 sess := client.daggerSession

Callers 1

flushWorkspaceLocksMethod · 0.85

Calls 7

workspaceLockPathFunction · 0.85
LocalFileExportMethod · 0.80
MarshalMethod · 0.65
RemoveMethod · 0.65
NameMethod · 0.65
WriteMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected