48 lines
981 B
Go
48 lines
981 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
|
|
"git.schreifuchs.ch/schreifuchs/pat/pkg/cat"
|
|
"git.schreifuchs.ch/schreifuchs/pat/pkg/clip"
|
|
"git.schreifuchs.ch/schreifuchs/pat/pkg/ignore"
|
|
)
|
|
|
|
const DELEMITTER = "-(%s)--------------------------------------------------------------------------\n"
|
|
|
|
func main() {
|
|
|
|
ignorePath := flag.String("i", "", "set path to gitignore, if no gitignore parent dirs will be searched")
|
|
hiddenFiles := flag.Bool("h", false, "show hidden files")
|
|
flag.Parse()
|
|
|
|
cats, err := cat.Path(flag.Args()...)
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
if *ignorePath != "" {
|
|
i, err := ignore.FindGitignore(*ignorePath)
|
|
if err != nil {
|
|
fmt.Printf("can't get gitignore: %v", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
cats = cats.Ignored(i)
|
|
}
|
|
if *hiddenFiles == false {
|
|
cats = cats.Ignored(ignore.Filesystem{})
|
|
}
|
|
|
|
out := cats.ToString(DELEMITTER)
|
|
fmt.Print(out)
|
|
|
|
if err = clip.Copy(out); err != nil {
|
|
fmt.Println(err.Error())
|
|
os.Exit(1)
|
|
}
|
|
}
|