NAME
sexc - build, test, install and publish C packages
SYNOPSIS
sexc <command> [options] [package...]COMMANDS
- build [package...]
- Build the named packages and everything they depend on; all of them when none are named. A package is named by its
name, itsbinor its folder. - test [package...]
- Build, then compile and run each test program. Output is shown for failures. Tests time out after 60 seconds.
- run <target> [-- args...]
- Build a program and run it with
args. - ls
- List the workspace's packages: name, version, kind, folder and dependencies.
- graph
- The build order, and which package depends on which.
- init <dir> [--name N] [--kind library|executable|ptx|wasm]
- Start a package: a
sexc.json, a source, a header and a test.ptxstarts with a kernel,wasmwith an exported function. - clean
- Remove
.sexc/out. - install [--frozen]
- Resolve every registry dependency in the workspace, write
sexc-lock.json, fetch into the store and link.sexc/deps. With--frozen, fail instead of changing the lock. - add <pkg>[@range]... [--to P]
- Add dependencies (default
^<latest>) to the package here, or toP, then install. - remove <pkg>... [--from P]
- Remove dependencies, then install.
- update [pkg...]
- Re-resolve the named packages (or all) to the newest versions their ranges allow.
- outdated
- Locked, wanted and latest version of each dependency.
- why <pkg>
- Which workspace packages pull a dependency in, and through what.
- pack [pkg] [--out DIR]
- Write the package's
.tgzas it would be published. - publish [pkg...] [-r] [--dry-run]
- Pack and upload.
-rpublishes every non-private package in dependency order, skipping versions already published. - yank <pkg>@<version> [--reason R]
- Hide a version from new installs;
unyankundoes it. - register --username U --email E --password-stdin
- Make an account, then log in.
- login --username U --password-stdin | --token T
- Store a token in
~/.sexc/credentials. - logout
- Revoke the stored token and forget it.
- whoami
- Who the stored token belongs to.
- search <query>
- Search the registry.
- info <pkg>[@version]
- A package's versions, dependencies and owners.
- token list | create [--name N] [--scope S] | revoke <id>
- Manage API tokens.
- help [command] [--json]
- Help for every command, or one. With
--json, a description of every command, argument and flag that a program can read. - version
- Print the version.
OPTIONS
- --json
- Print one JSON document on stdout and nothing else: results, errors, and compiler diagnostics as
file,line,column,severity,message. - -j N, --jobs N
- Run N compilers at once. Default: one per CPU.
- --profile NAME
- Build with a profile from the root manifest:
debug(the default),release,asan. - --release
- Short for
--profile release. - -v, --verbose
- Show every command as it runs.
- --registry URL
- Use another registry. Default
https://sexc.dev, or$SEXC_REGISTRY.
EXIT STATUS
- 0
- Everything built, or every test passed.
- 1
- A build or a test failed.
- 2
- The command line was wrong.
- 3
- A manifest or the workspace is wrong: bad JSON, an unknown field, a missing dependency, a cycle.
- 4
- The registry couldn't be reached, or refused the request.
EXAMPLES
$ sexc build --release
$ sexc test @sexc/core
$ sexc build --json | jq '.diagnostics'
$ sexc run sexc-web -- serve --port 8080
$ sexc add @ajax/strbuf
$ sexc publish -r