12345678910111213141516171819202122232425262728293031323334353637383940 |
- package eval
- import (
- "src.elv.sh/pkg/eval/errs"
- "src.elv.sh/pkg/fsutil"
- )
- // Filesystem commands.
- func init() {
- addBuiltinFns(map[string]any{
- // Directory
- "cd": cd,
- // Path
- "tilde-abbr": tildeAbbr,
- })
- }
- func cd(fm *Frame, args ...string) error {
- var dir string
- switch len(args) {
- case 0:
- var err error
- dir, err = getHome("")
- if err != nil {
- return err
- }
- case 1:
- dir = args[0]
- default:
- return errs.ArityMismatch{What: "arguments", ValidLow: 0, ValidHigh: 1, Actual: len(args)}
- }
- return fm.Evaler.Chdir(dir)
- }
- func tildeAbbr(path string) string {
- return fsutil.TildeAbbr(path)
- }
|