mod/stdlib: attempt to remove the lock file after file unlock

Signed-off-by: Sam Alba <samalba@users.noreply.github.com>
This commit is contained in:
Sam Alba 2021-11-17 16:23:23 -08:00
parent 1b401dbc86
commit 7450c70214
2 changed files with 19 additions and 6 deletions

View File

@ -2,6 +2,7 @@ package mod
import (
"context"
"os"
"path"
"strings"
@ -36,12 +37,16 @@ func Install(ctx context.Context, workspace, repoName, versionConstraint string)
return nil, err
}
fileLock := flock.New(path.Join(workspace, lockFilePath))
fileLockPath := path.Join(workspace, lockFilePath)
fileLock := flock.New(fileLockPath)
if err := fileLock.Lock(); err != nil {
return nil, err
}
defer fileLock.Unlock()
defer func() {
fileLock.Unlock()
os.Remove(fileLockPath)
}()
err = modfile.install(ctx, require)
if err != nil {
@ -91,12 +96,16 @@ func Update(ctx context.Context, workspace, repoName, versionConstraint string)
return nil, err
}
fileLock := flock.New(path.Join(workspace, lockFilePath))
fileLockPath := path.Join(workspace, lockFilePath)
fileLock := flock.New(fileLockPath)
if err := fileLock.Lock(); err != nil {
return nil, err
}
defer fileLock.Unlock()
defer func() {
fileLock.Unlock()
os.Remove(fileLockPath)
}()
updatedRequire, err := modfile.updateToLatest(ctx, require)
if err != nil {

View File

@ -23,12 +23,16 @@ var (
)
func Vendor(ctx context.Context, mod string) error {
fileLock := flock.New(path.Join(mod, lockFilePath))
lockFilePath := path.Join(mod, lockFilePath)
fileLock := flock.New(lockFilePath)
if err := fileLock.Lock(); err != nil {
return err
}
defer fileLock.Unlock()
defer func() {
fileLock.Unlock()
os.Remove(lockFilePath)
}()
// Remove any existing copy of the universe
if err := os.RemoveAll(path.Join(mod, Path)); err != nil {