Я с помощью интерфейса пакета Перейти: https://github.com/codegangsta/cliЧтение внешний файл с Cli Go пакета
package main
import (
"fmt"
"github.com/codegangsta/cli"
"io/ioutil"
"os"
)
func main() {
app := cli.NewApp()
app.Name = "m2k"
app.Usage = "convert markdown to kindle"
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "file",
Value: "english",
Usage: "language for the greeting",
},
}
app.Action = func(c *cli.Context) {
file := "default"
if len(c.Args()) > 0 {
file = c.Args()[0]
}
//fmt.Println("file %s", file)
fmt.Println("file %s", file)
b, err := ioutil.ReadFile(file)
if err != nil {
panic(err)
}
err = ioutil.WriteFile("output.txt", b, 0644)
if err != nil {
panic(err)
}
}
app.Run(os.Args)
}
Я новичок Go. Поэтому я, вероятно, сделал что-то очень плохое.
Я делаю это в командной строке (у меня есть файл с именем markdown.txt
в каталоге):
~/go/io$ go run io.go -file markdown.txt
Но я получаю эту ошибку:
created by runtime.main /usr/lib/go/src/pkg/runtime/proc.c:221 exit status 2
EDIT:
Я написал fmt.Println("file %s", file)
до app.Action
, но ничего не печатается. Означает ли это что-то о проблеме?
Не могли бы вы предоставить мне пример кода? – alexchenco
Я добавил пример для использования c.Args.Get (n) – kwolfe