bb/noext/noext.go

42 lines
645 B
Go
Raw Normal View History

2021-03-08 02:35:25 +03:00
package noext
/* Print file path without extension. */
import(
"fmt"
"flag"
"os"
)
var(
arg0 string
args []string
dot = '.'
2021-05-18 20:54:36 +03:00
slash = '/'
2021-03-08 02:35:25 +03:00
)
func NoExt(p string) string {
l := len(p)-1
i := l
for ; rune(p[i])!=dot ; i -= 1 {
if rune(p[i]) == slash || i==0 {
return p
}
}
return p[:i]
}
func Run(argv []string) int {
status := 0
arg0 = argv[0]
args = argv[1:]
flagSet := flag.NewFlagSet(arg0, flag.ExitOnError)
flagSet.Usage = func() {
fmt.Fprintf(os.Stderr, "usage: %s [files]\n", arg0, arg0)
flagSet.PrintDefaults()
}
flagSet.Parse(args)
args = flagSet.Args()
fmt.Printf("%s", NoExt(args[0]))
return status
}