SHARDS(1)

NAME
shards - dependency manager for the Crystal Language

SYNOPSYS
shards [<options>...] [<command>]

If no command is given, install will be run by default.

DESCRIPTION

Manages dependencies for Crystal projects and libraries with reproducible installs across computers and systems.

Requires the presence of a shard.yml file. See shard.yml(5) for more information on its format.

COMMANDS

build [<targets>] [<options>...]
    Builds the specified targets in bin path. If no targets are specified, all are built. This command ensures all dependencies are installed, so it is not necessary to run shards install before.

    All options following the command are delegated to crystal build.

check
    Verifies that all dependencies are installed and requirements are satisfied.

  Exit status:

0   dependencies are satisfied,

1   dependencies aren't satisfied.

init
    Initializes a default shard.yml in the current folder.

install
    Resolves and installs dependencies into the lib folder. If not already present, generates a shard.lock file from resolved dependencies, locking version numbers or Git commits.

    Reads and enforces locked versions and commits if a shard.lock file is present. The install command may fail if a locked version doesn't match a requirement, but may succeed if a new dependency was added, as long as it doesn't generate a conflict, thus generating a new shard.lock file.

list [--tree]
    Lists the installed dependencies and their versions. Specifying --tree will list nested dependencies in a tree manner, instead of a flattened list.

lock [--update [<shards>]]
    Resolves dependencies and creates or updates the shard.lock file as per the install command, but never installs the dependencies.

    Specifying --update follows the same semantics as the update command.

prune
    Removes unused dependencies from lib folder.

update [<shards>]
    Resolves and updates all dependencies into the lib folder again, whatever the locked versions and commits in the shard.lock file.

    Specifying shards will update these dependencies only, trying to be as conservative as possible with other dependencies, respecting the locked versions and commits in the shard.lock file.

    Eventually generates a new shard.lock file.

version [<path>]
    Print the current version of the shard located at path.

OPTIONS

--version
    Print the shards version.

-h, --help
    Print usage synopsis.

--no-color
    Disable colored output.

--production
    Run in release mode. Development dependencies won't be installed and only locked dependencies will be installed. Commands will fail if dependencies in shard.yml and shard.lock are out of sync.

-q, --quiet
    Decrease the log verbosity, printing only warnings and errors.

-v, --verbose
    Increase the log verbosity, printing all debug statements. Written by Julien Portalier.

REPORTING BUGS
Report shards bugs to <https://github.com/crystal-lang/shards/issues> Crystal Language home page: <https://crystal-lang.org>

COPYRIGHT
Copyright © 2018 Julien Portalier. License Apache 2.0 <http://www.apache.org/licenses/LICENSE-2.0>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
shard.yml(5)