# Revise self-hosted command line interface · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/803f0a295b168de058ac915d9ac45add44a41f40)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: 803f0a295b168de058ac915d9ac45add44a41f40

Requested commit: 803f0a295b168de058ac915d9ac45add44a41f40

Commit: 803f0a295b168de058ac915d9ac45add44a41f40

Tree: 75cb2dff513bdb34e56bfb6af5ea3ac9fd135bb9

Author: Marc Tiehuis

Committer: Marc Tiehuis

## Message

```
Revise self-hosted command line interface

Commands are now separated more precisely from one another. Arguments
are parsed mostly using a custom argument parser instead of manually.
This should be on parity feature-wise with the previous main.zig but
adds a few extra code-paths as well that were not yet implemented.

Subcommands are much more prominent and consistent. The first argument
is always a sub-command and then all following arguments refer to that
command. Different commands display there own usage messages and options
based on what they can do instead of a one-for-all usage message that
was only applicable for the build commands previously.

The `cc` command is added and is intended for driving a c compiler. See #490.
This is currently a wrapper over the system cc and assumes that it
exists, but it should suffice as a starting point.

```

## Parents

- [281c17f6ae3c294d0b7139fe640dd0cb30123ea1](https://git.cafe/gitcafe/zig/commit/281c17f6ae3c294d0b7139fe640dd0cb30123ea1?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/803f0a295b168de058ac915d9ac45add44a41f40?format=markdown)
