32 lines
624 B
Go
32 lines
624 B
Go
|
package runner
|
||
|
|
||
|
import (
|
||
|
"github.com/WHUPRJ/woj-server/internal/e"
|
||
|
"github.com/WHUPRJ/woj-server/pkg/utils"
|
||
|
"go.uber.org/zap"
|
||
|
"os"
|
||
|
"os/exec"
|
||
|
"path/filepath"
|
||
|
)
|
||
|
|
||
|
func (s *service) EnsureDeps(force bool) e.Status {
|
||
|
mark := filepath.Join(Prefix, ".mark.docker")
|
||
|
|
||
|
if force {
|
||
|
_ = os.Remove(mark)
|
||
|
} else if utils.FileExist(mark) {
|
||
|
return e.Success
|
||
|
}
|
||
|
|
||
|
script := filepath.Join(ScriptsDir, "prepare_container.sh")
|
||
|
cmd := exec.Command(script)
|
||
|
cmd.Dir = ScriptsDir
|
||
|
err := cmd.Run()
|
||
|
if err != nil {
|
||
|
s.log.Warn("prebuild docker images failed", zap.Error(err))
|
||
|
return e.RunnerDepsBuildFailed
|
||
|
}
|
||
|
|
||
|
return e.Success
|
||
|
}
|