noext.go 470 B

1234567891011121314151617181920212223242526272829303132
  1. package noext
  2. /* Print file path without extension. */
  3. import(
  4. "fmt"
  5. "surdeus.su/core/cli/mtool"
  6. )
  7. var(
  8. arg0 string
  9. args []string
  10. dot = '.'
  11. slash = '/'
  12. )
  13. func NoExt(p string) string {
  14. l := len(p)-1
  15. i := l
  16. for ; rune(p[i])!=dot ; i -= 1 {
  17. if rune(p[i]) == slash || i==0 {
  18. return p
  19. }
  20. }
  21. return p[:i]
  22. }
  23. func Run(flagSet *mtool.Flags) {
  24. flagSet.Parse()
  25. args := flagSet.Args()
  26. if len(args) < 1 { flagSet.Usage() }
  27. fmt.Printf("%s", NoExt(args[0]))
  28. }