Skip to content

Packaging via sbt-native-packager #41

Description

@Sootopolis

Depends on

None.

Blocks

  • Decline subcommand tree
  • ccas serve lifecycle (transitively)

What

Add sbt-native-packager with the JavaAppPackaging plugin. Produce a runnable ccas shell wrapper plus lib jars under target/universal/stage/ (via sbt stage).

Single main entry point class (e.g. ccas.cli.Main) that dispatches on the first argv to either the existing CcasServer boot (ccas serve) or the upcoming subcommand tree (separate issue). Empty implementation for the latter is fine in this issue — it can println("not implemented yet") until the decline subcommand tree lands.

Acceptance

  • sbt stage produces target/universal/stage/bin/ccas.
  • bin/ccas serve boots the existing CcasServer on 127.0.0.1:8080.
  • bin/ccas anything-else exits non-zero with a placeholder message.
  • README updated with a "Build" section pointing at sbt stage.

Files

  • project/plugins.sbt — add sbt-native-packager.
  • build.sbt — enable JavaAppPackaging, set Compile / mainClass.
  • new src/main/scala/ccas/cli/Main.scala — argv dispatch.
  • README.md — build instructions.

Reference

Tracked under epic #40 (CLI v0). Roadmap: ~/.claude/plans/ultra-sparkling-unicorn.md § "Phase 1, new work #1".

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:cliCLI binary (subcommands, completions, config, packaging)choreTooling, deps, config, build, cleanup

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions