func (s *GenerateBuildPathIfMissing) Run(ctx *types.Context) error {
	if ctx.BuildPath != "" {
		return nil
	}

	md5sum := utils.MD5Sum([]byte(ctx.SketchLocation))

	buildPath := filepath.Join(os.TempDir(), "arduino-sketch-"+strings.ToUpper(md5sum))
	_, err := os.Stat(buildPath)
	if err != nil && !os.IsNotExist(err) {
		return i18n.WrapError(err)
	}

	if ctx.DebugLevel > 5 {
		logger := ctx.GetLogger()
		logger.Fprintln(os.Stdout, constants.LOG_LEVEL_WARN, constants.MSG_SETTING_BUILD_PATH, buildPath)
	}

	ctx.BuildPath = buildPath

	return nil
}
Esempio n. 2
0
func SetupBuildPath(t *testing.T, ctx *types.Context) string {
	buildPath, err := ioutil.TempDir(constants.EMPTY_STRING, "test")
	NoError(t, err)
	ctx.BuildPath = buildPath
	return buildPath
}