feat(assets): seven asset commands + Run dispatch/helpers
check-dupes, clean-dupes, check-mdl, fix-mdl, convert, upscale, compile behind a single runner indirection, mirroring internal/depot's Run shape. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package assets
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
)
|
||||
|
||||
const (
|
||||
exitOK = 0
|
||||
exitFail = 1 // problems found / per-file failures
|
||||
exitUsage = 64 // bad invocation / unknown subcommand / bad flags
|
||||
exitTool = 70 // missing external tool / internal error
|
||||
)
|
||||
|
||||
// Run executes an assets subcommand. args[0] is the subcommand; returns the
|
||||
// process exit code.
|
||||
func Run(args []string, stdout, stderr io.Writer, getenv func(string) string) int {
|
||||
if len(args) == 0 {
|
||||
printUsage(stderr)
|
||||
return exitUsage
|
||||
}
|
||||
rest := args[1:]
|
||||
switch args[0] {
|
||||
case "check-dupes":
|
||||
return runCheckDupes(rest, stdout, stderr)
|
||||
case "clean-dupes":
|
||||
return runCleanDupes(rest, stdout, stderr)
|
||||
case "check-mdl":
|
||||
return runCheckMDL(rest, stdout, stderr)
|
||||
case "fix-mdl":
|
||||
return runFixMDL(rest, stdout, stderr)
|
||||
case "convert":
|
||||
return runConvert(rest, stdout, stderr)
|
||||
case "upscale":
|
||||
return runUpscale(rest, stdout, stderr)
|
||||
case "compile":
|
||||
return runCompile(rest, stdout, stderr, getenv)
|
||||
default:
|
||||
fmt.Fprintf(stderr, "assets: unknown subcommand %q\n\n", args[0])
|
||||
printUsage(stderr)
|
||||
return exitUsage
|
||||
}
|
||||
}
|
||||
|
||||
func printUsage(w io.Writer) {
|
||||
fmt.Fprint(w, `usage:
|
||||
assets compile [--nwn INSTALL] [--non-recursive] <dir>...
|
||||
assets convert [--to dds|png|tga] [--backend PATH] [--non-recursive] <dir>...
|
||||
assets upscale [--scale N] [--backend PATH] [--non-recursive] <dir>...
|
||||
assets check-mdl <path>...
|
||||
assets fix-mdl [--dry-run] <path>...
|
||||
assets check-dupes <dir>...
|
||||
assets clean-dupes [--dry-run] <primary> <clean>
|
||||
`)
|
||||
}
|
||||
Reference in New Issue
Block a user