main.go 554 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package ln
  2. import (
  3. "fmt"
  4. "os"
  5. "surdeus.su/core/cli/mtool"
  6. "path/filepath"
  7. )
  8. func Run(flagSet *mtool.Flags) {
  9. var lflag bool
  10. flagSet.BoolVar(&lflag, "s", false, "make a symbolic link, not a hard one")
  11. flagSet.Parse()
  12. args := flagSet.Args()
  13. if len(args) != 2 {
  14. flagSet.Usage()
  15. os.Exit(1)
  16. }
  17. src := args[0]
  18. dst := args[1]
  19. src = filepath.FromSlash(src)
  20. dst = filepath.FromSlash(dst)
  21. var err error
  22. if lflag {
  23. err = os.Symlink(src, dst)
  24. } else {
  25. err = os.Link(src, dst)
  26. }
  27. if err != nil {
  28. fmt.Fprintln(os.Stderr, err)
  29. }
  30. }