## Versioning

All core-utils will remain `0.1.0` until the entirety of core-utils reaches
`1.0.0`.

## Issues
If a particular utility is at issue please prepend with issue with its name as
such: `"dd: not implemented"`

## Style

Standard Rust indentation is used. No use of globs, and use of namespaces must
be explicit, this rule does not apply for structures or enumerations, returns
must be explicit. External crates must be imported before any `use`s. For
example:

```Rust
// Bad (set_exit_status is a function)
use std::env::*
use std::env::{set_exit_status};

extern crate common;
use common::{Status};

// Good
extern crate common;

use common::{Status};

use std::env;
use std::path::{PathBuf};
```
Feel free to take a look at some of the source for the general structure of a
util

## Help, Versions

When writing help menus for any util, use the following structure:
```
$ util --help
Usage: util [OPTION...] [FILE...]
Useful utilitiy for doing things

Options:
    -v --verbose	Print things
    -f --function	Do things

Example:
    util -vf file.txt	Does and prints a thing
```
Append an elipses if the program takes more than one option/file

For printing versions use [`Prog.copyright`](lib/lib.rs).

## Commits

Commits must be well documented, and signed off on. See
[commits](https://github.com/0X1A/core-utils/commits/master) for examples

## License

All files must be prepended with:
```
// Copyright (C) YEAR, CONTRIBUTER <CONTRIBUTER EMAIL>
// All rights reserved. This file is part of core-utils, distributed under the
// GPL v3 license. For full terms please see the LICENSE file.
```
