从临时文件构建插件

时间:2019-07-15 06:57:39

标签: go

我正在尝试解决从临时文件构建插件的问题。其背后的想法是,此插件将仅执行一次,然后也将被删除。

我的代码如下所示(省略错误处理):

tmpFile, _ := ioutil.TempFile(os.TempDir(), "prefix-")
defer os.Remove(tmpFile.Name())
text := []byte(fileContents)
tmpFile.Write(text)
command := ("go build -buildmode=plugin " + tmpFile.Name())
cmd := exec.Command(command)
err = cmd.Run()
if err != nil {
    log.Fatal("Plugin creation failed: ", err)
}
tmpFile.Close()

它的执行产生以下结果:

Plugin creation failed: exec: "go build -buildmode=plugin C:\\Users\\user\\AppData\\Local\\Temp\\prefix-814698443": file does not exist

我什至尝试使用os.Stat(filename)os.IsNotExist(err)检查文件是否存在。验证它确实存在。

我该如何解决?我不知道的临时文件有一些限制吗?

0 个答案:

没有答案