feat(commands): refactor and add more commands

This commit is contained in:
verse91
2026-04-09 23:30:16 +07:00
parent 76458ce52e
commit f4816d2b5f
31 changed files with 546 additions and 110 deletions
+13
View File
@@ -0,0 +1,13 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "cd",
Description: "change directory",
Generator: core.FileGenerator("/"), // Directory only
})
}
+16
View File
@@ -0,0 +1,16 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "chmod",
Description: "change file permissions",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-R", Description: "recursive"},
},
})
}
+16
View File
@@ -0,0 +1,16 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "chown",
Description: "change file owner",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-R", Description: "recursive"},
},
})
}
+21
View File
@@ -0,0 +1,21 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "cp",
Description: "copy files and directories",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-r", Description: "recursive"},
{Name: "-a", Description: "archive mode"},
{Name: "-v", Description: "verbose"},
{Name: "-i", Description: "interactive"},
{Name: "-u", Description: "update (copy only if newer)"},
{Name: "-p", Description: "preserve attributes"},
},
})
}
+17
View File
@@ -0,0 +1,17 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "ln",
Description: "create links",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-s", Description: "symbolic link"},
{Name: "-f", Description: "force"},
},
})
}
+20
View File
@@ -0,0 +1,20 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "ls",
Description: "list directory contents",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-a", Description: "all files"},
{Name: "-l", Description: "long format"},
{Name: "-h", Description: "human readable"},
{Name: "-R", Description: "recursive"},
{Name: "-t", Description: "sort by time"},
},
})
}
+16
View File
@@ -0,0 +1,16 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "mkdir",
Description: "make directories",
Options: []core.Option{
{Name: "-p", Description: "create parent dirs"},
{Name: "-v", Description: "verbose"},
},
})
}
+19
View File
@@ -0,0 +1,19 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "mv",
Description: "move (rename) files",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-i", Description: "interactive"},
{Name: "-f", Description: "force (overwrite)"},
{Name: "-n", Description: "no clobber (don't overwrite)"},
{Name: "-v", Description: "verbose"},
},
})
}
+20
View File
@@ -0,0 +1,20 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "rm",
Description: "remove files or directories",
Generator: core.FileGenerator(),
Options: []core.Option{
{Name: "-r", Description: "recursive"},
{Name: "-f", Description: "force"},
{Name: "-i", Description: "interactive"},
{Name: "-v", Description: "verbose"},
{Name: "-d", Description: "remove empty directories"},
},
})
}
+13
View File
@@ -0,0 +1,13 @@
package fs
import (
"github.com/versenilvis/iris/commands/core"
)
func init() {
core.Register(&core.Spec{
Name: "touch",
Description: "create or update file timestamp",
Generator: core.FileGenerator(),
})
}