优化Go命令行工具:临时文件清理与模板应用
1. 临时文件清理
在开发命令行工具时,临时文件的清理是一个重要的问题。当前的程序在创建临时文件后,并不会自动清理这些文件。多次运行工具会产生不同的临时文件,例如:
$ go run main.go -file README.md
/tmp/mdp552496404.html
$ go run main.go -file README.md
/tmp/mdp016541878.html
$ ls -ltr /tmp/ | grep mdp
-rw------- 1 ricardo users 503 Apr 15 10:25 mdp807323568.html
-rw------- 1 ricardo users 503 Apr 15 10:27 mdp552496404.html
-rw------- 1 ricardo users 503 Apr 15 10:31 mdp016541878.html
为了保持系统的整洁,我们需要手动删除这些临时文件。在Go程序中,可以使用 os.Remove
函数来删除不再需要的文件。通常,我们使用 defer
语句来确保在当前函数返回时删除文件。
以下是更新后的 run
函数:
func run(filename string, out io.Writer, skipPreview bool) error {
// Rea