| 101 | } |
| 102 | |
| 103 | func (s *proxyClient) initLock() { |
| 104 | s.workspaceLockOnce.Do(func() { |
| 105 | s.m.Lock() |
| 106 | defer s.m.Unlock() |
| 107 | |
| 108 | // get locks dir |
| 109 | workspaceLocksDir, err := provider.GetLocksDir(s.workspace.Context) |
| 110 | if err != nil { |
| 111 | panic(fmt.Errorf("get workspaces dir: %w", err)) |
| 112 | } |
| 113 | _ = os.MkdirAll(workspaceLocksDir, 0777) |
| 114 | |
| 115 | // create workspace lock |
| 116 | s.workspaceLock = flock.New(filepath.Join(workspaceLocksDir, s.workspace.ID+".workspace.lock")) |
| 117 | }) |
| 118 | } |
| 119 | |
| 120 | func (s *proxyClient) Provider() string { |
| 121 | return s.config.Name |