Commit graph

209 commits

Author SHA1 Message Date
Sylvestre Ledru
78c04a254e refactor ~ rename MinSRV => MinRustV 2020-06-02 12:23:48 -05:00
Roy Ivy III
27f794bcab maint/build ~ remove unneeded specialized test configuration from Cargo.toml 2020-06-02 12:17:30 -05:00
Roy Ivy III
bf8353cce0 docs ~ update coreutils description based on PR feedback 2020-06-01 17:24:19 -05:00
Roy Ivy III
508b1547be 0.0.1.1 2020-05-31 15:48:54 -05:00
Roy Ivy III
66a021d737 maint/deps ~ refactor/rename pinned dependencies (use 'pin_' prefix) to satisfy crates.io requirements 2020-05-31 15:48:54 -05:00
Roy Ivy III
8a44e563a4 docs ~ reduce crate meta-information keywords to the maximum of five 2020-05-31 15:48:54 -05:00
Roy Ivy III
717c783a21 deps ~ update to uucore/uucore_procs v0.0.4 2020-05-29 22:59:48 -05:00
Roy Ivy III
9f585f5426 docs ~ improve/update crate meta information 2020-05-29 22:59:47 -05:00
Roy Ivy III
d70db1f7d2 docs ~ improve/update sub-crate meta information 2020-05-29 22:59:47 -05:00
Roy Ivy III
45a1609a38 update held/pinned dependencies (to maintain MinSRV v1.31.0) 2020-05-29 22:59:47 -05:00
Roy Ivy III
52ae491fcd change ~ rename base binary to 'coreutils' 2020-05-29 22:59:47 -05:00
Roy Ivy III
785bac49b8 docs ~ comment polish (Cargo.toml) 2020-05-29 22:59:46 -05:00
Roy Ivy III
f051f62445 change ~ add work-around for crate name collisions
- imported crate name collisions bypass implemented

## [why]

There may be some core or external crates required/used by this project that collide with
uutil names. For example, the `test` util collides with the rust core crate 'test' which
is used behind the scenes for testing. Without the renaming scheme used here, cryptic and
fatal compiler errors occur when compiling the integration tests.
2020-05-29 22:59:46 -05:00
Roy Ivy III
db2e950918 change ~ make all sub-crates independent 2020-05-29 22:59:40 -05:00
Roy Ivy III
3291f9d4db deps ~ update uucore dependency (removing patch configuration) 2020-05-29 22:59:33 -05:00
Roy Ivy III
6606408ce9 refactor/polish ~ whitespace normalization (consistent indentation [either tabs *or* spaces], EOF EOLNs, no trailing whitespace) 2020-05-24 17:29:07 -05:00
Roy Ivy III
3877cf4bd3 maint/deps ~ pin unstable 'textwrap' crate (marked for later review)
## [why]

'textwrap' is currently unstable, with "term_size" being an undocumented, but required,
feature. The feature name has already changed within the repository 'master' branch.
But that branch has never been pushed to a new version.

Pin for now with "!maint" mark and comment.
2020-05-24 17:29:07 -05:00
Roy Ivy III
8263d31fbb change ~ improve help display for main multi-call binary 2020-05-24 17:29:07 -05:00
Roy Ivy III
bebf36bffb change/uutils ~ allow (almost) any name for the multi-binary container
- final multi-binary will now function correctly with any binary/executable name
- multi-binary container acts as the specified util IF EITHER ...
  1. the binary/executable name exactly matches the name of an applet/util
  2. the binary/exectuable name matches <PREFIX><UTIL_NAME> pattern
     * where the PREFIX is any string ending in a non-alphanumeric character
2020-05-24 17:29:07 -05:00
Roy Ivy III
100fc8d1e0 maint/deps ~ improve dependency reference for the 'rust-users' external crate 2020-05-24 17:29:07 -05:00
Roy Ivy III
6880938955 maint/deps ~ refactor/rename pinned 'backtrace' with leading '_' to show lack of local use 2020-05-24 17:29:06 -05:00
Sylvestre Ledru
6e8c901204 fix: typo fixes found by codespell 2020-05-01 23:36:33 +02:00
Sylvestre Ledru
d5228b5a64 feat(df) add 'df' uutil 2020-04-28 13:05:55 -05:00
Roy Ivy III
f4c4d0e635 maint/build ~ feature reorganization and polish
.## [why]

Reorganizing and minor renaming of features within *Cargo.toml* will hopefully
help to place new utilities into the best feature set, encouraging the
"universal" / cross-platform aspect of the project.

"feat_require_..." sets are used to segregate utilities with restrictions limiting
cross-platform availability and are annotated with the reasons for the limitations.
2020-04-23 14:49:22 -05:00
Sylvestre Ledru
c756ca6f06 maint/dev ~ relax the dev-dependencies 2020-04-19 00:06:33 +02:00
Sylvestre Ledru
fed240d817 Use uucore from uutils 2020-04-15 00:01:21 +02:00
Roy Ivy III
6a284b1c91 change ~ fixup paths (within Cargo.toml) 2020-04-14 13:46:18 -05:00
Sylvestre Ledru
101a5fd9d1
remove comment 2020-04-13 22:11:29 +02:00
Sylvestre Ledru
104629c97b
Update Cargo.toml
Co-Authored-By: Roy Ivy III <rivy.dev@gmail.com>
2020-04-13 22:10:30 +02:00
Sylvestre Ledru
64e2a779a8
Update Cargo.toml
Co-Authored-By: Roy Ivy III <rivy.dev@gmail.com>
2020-04-13 22:10:20 +02:00
Sylvestre Ledru
d07ad40e8d Add some missing metadata 2020-04-13 20:03:26 +02:00
Roy Ivy III
6a18d7f7be update ~ (maint!) use fixed/patched uucore (v0.0.2); await upgrade upstream
- fixes musl (no-utmpx) build bug
- fixes failing windows real{link,path} tests
2020-04-12 22:39:55 -05:00
Roy Ivy III
ab9eb31156 maint/build ~ refactor dependencies into sorted order 2020-04-12 16:56:03 -05:00
Roy Ivy III
57ef582b46 maint/build ~ polish and comment 'features' 2020-04-12 16:56:03 -05:00
Roy Ivy III
e89421419d fix forced MinSRV increase (using locked 'backtrace' version)
- hotfix transitive bug in 'failure' forcing MinSRV increase to rust v1.33.0 by pinning 'backtrace' to <= 0.3.31

.# [why]

'failure' was using 'backtrace' `version = "0.3.3"`, which by semantic version
auto-upgrade was pulling in 'backtrace' > v0.3.30 (specifically, v0.3.40 most
recently). 'backtrace' v0.3.31 introduces use of `#[cfg(target_vendor = ...)]`
which requires rust v1.33.0. So, 'backtrace' is forcing an upgrade of MinSRV
to rust v1.33.0 with the change from backtrace v0.3.30 to backtrace v0.3.31.

Technically, by being less than v1.0.0, 'backtrace' has no semantic version
requirement. And there is debate about whether increasing MinSRV is a semantic
change. But, in my strong opinion, breaking our MinSRV statement is definitely
a semantic change.

* ref: <https://github.com/rust-lang/rust/blob/master/RELEASES.md>
2020-04-11 18:50:10 -05:00
Roy Ivy III
b7a3c4d8a8 maint/build ~ refactor feature strategy (allows simple cargo build on all platforms) and easier cross-targeted builds 2020-02-09 09:48:55 -06:00
Roy Ivy III
95809ae98e Add 'windows_legacy' feature to allow build for older windows versions 2020-01-27 21:33:47 -06:00
Xavier L'Heureux
63f3f78bda Update the dependencies for redox compilation 2019-09-28 09:29:22 -04:00
dependabot-preview[bot]
fa73fe1c64
build: bump libc from 0.2.56 to 0.2.58
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.56 to 0.2.58.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.56...0.2.58)
2019-06-03 13:29:25 +00:00
dependabot-preview[bot]
61a4846755
build: bump libc from 0.2.54 to 0.2.56
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.54 to 0.2.56.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.54...0.2.56)
2019-05-31 12:31:02 +00:00
Alex Lyon
b73a664677 Split off uucore into its own repository 2019-05-12 22:42:20 -07:00
Alex Lyon
b6cd8deb6f Switch users back to our rust-users fork to fix the build 2019-05-01 22:18:51 -07:00
Alex Lyon
db35eab23b Remove git dependencies 2019-05-01 21:14:39 -07:00
Alex Lyon
63f1537838 Add windows feature and make unix imply generic 2019-05-01 21:14:25 -07:00
dependabot[bot]
08ec78b634
build: bump libc from 0.2.51 to 0.2.53
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.51 to 0.2.53.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.51...0.2.53)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-29 21:06:56 +00:00
dependabot[bot]
2d55e5ca85
build: bump filetime from 0.2.4 to 0.2.5
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/alexcrichton/filetime/releases)
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.4...0.2.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-24 07:26:10 +00:00
dependabot[bot]
32325da059
Bump rand from 0.5.5 to 0.6.5
Bumps [rand](https://github.com/rust-random/rand) from 0.5.5 to 0.6.5.
- [Release notes](https://github.com/rust-random/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-random/rand/compare/0.5.5...0.6.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-23 17:39:22 +00:00
Alex Lyon
be91d50361
Merge pull request #1343 from uutils/dependabot/cargo/lazy_static-1.3.0
Bump lazy_static from 1.2.0 to 1.3.0
2019-04-23 10:37:18 -07:00
Alex Lyon
cefbe6c1f2
Merge pull request #1319 from rivy/fix.touch
fix ~ touch: fix and test for windows
2019-04-08 15:16:26 -07:00
Roy Ivy III
44af40797c touch: fix ~ recategorize 'touch' from 'fuchsia' (ie, unix) to 'generic' 2019-04-07 09:14:46 -05:00
dependabot[bot]
9fc716d1b8
Bump lazy_static from 1.2.0 to 1.3.0
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.2.0 to 1.3.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.2.0...1.3.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-04-06 01:59:58 +00:00
dependabot[bot]
b018cc45de
Bump libc from 0.2.42 to 0.2.51
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.42 to 0.2.51.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.42...0.2.51)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-03-29 07:30:02 +00:00
Alex Lyon
1dc7d8cb91
Merge pull request #1328 from uutils/dependabot/cargo/time-0.1.42
Bump time from 0.1.40 to 0.1.42
2019-02-08 11:31:07 -08:00
dependabot[bot]
31084f12c7
Bump time from 0.1.40 to 0.1.42
Bumps [time](https://github.com/rust-lang/time) from 0.1.40 to 0.1.42.
- [Release notes](https://github.com/rust-lang/time/releases)
- [Commits](https://github.com/rust-lang/time/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-08 08:45:35 +00:00
dependabot[bot]
6d208d26c5
Bump lazy_static from 1.0.1 to 1.2.0
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.0.1 to 1.2.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/compare/1.0.1...1.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-08 08:45:28 +00:00
Alex Lyon
30ef9662b3
Merge pull request #1333 from uutils/dependabot/cargo/filetime-0.2.4
build(deps): bump filetime from 0.2.1 to 0.2.4
2019-02-08 00:43:48 -08:00
dependabot[bot]
55c29c8a1d
build(deps): bump filetime from 0.2.1 to 0.2.4
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.2.1 to 0.2.4.
- [Release notes](https://github.com/alexcrichton/filetime/releases)
- [Commits](https://github.com/alexcrichton/filetime/compare/0.2.1...0.2.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-08 07:21:13 +00:00
dependabot[bot]
a8c6264023
Bump rand from 0.4.2 to 0.5.5
Bumps [rand](https://github.com/rust-lang-nursery/rand) from 0.4.2 to 0.5.5.
- [Release notes](https://github.com/rust-lang-nursery/rand/releases)
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang-nursery/rand/compare/0.4.2...0.5.5)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-07 08:45:30 +00:00
Alex Lyon
2d26f800de
Merge pull request #1302 from uutils/dependabot/cargo/regex-1.0.3
Bump regex from 1.0.1 to 1.0.3
2019-02-07 00:42:19 -08:00
dependabot[bot]
c1480472a3
Bump regex from 1.0.1 to 1.0.3
Bumps [regex](https://github.com/rust-lang/regex) from 1.0.1 to 1.0.3.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.0.1...1.0.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-10-15 07:46:09 +00:00
Roy Ivy III
cb7a926e9a maint: turn off cargo autotests to silence warnings 2018-10-14 00:41:14 -05:00
dependabot[bot]
3e907e2a10
Bump regex from 1.0.0 to 1.0.1
Bumps [regex](https://github.com/rust-lang/regex) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.0.0...1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-20 15:39:26 +00:00
dependabot[bot]
be615fb7df
Bump regex from 0.2.7 to 1.0.0
Bumps [regex](https://github.com/rust-lang/regex) from 0.2.7 to 1.0.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/0.2.7...1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-15 07:24:38 +00:00
dependabot[bot]
4a4877264c
Bump time from 0.1.39 to 0.1.40
Bumps [time](https://github.com/rust-lang/time) from 0.1.39 to 0.1.40.
- [Release notes](https://github.com/rust-lang/time/releases)
- [Commits](https://github.com/rust-lang/time/compare/0.1.39...0.1.40)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-14 07:22:03 +00:00
dependabot[bot]
374fb4d4f1
Bump filetime from 0.1.15 to 0.2.1
Bumps [filetime](https://github.com/alexcrichton/filetime) from 0.1.15 to 0.2.1.
- [Release notes](https://github.com/alexcrichton/filetime/releases)
- [Commits](https://github.com/alexcrichton/filetime/compare/0.1.15...0.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-13 14:15:48 -07:00
dependabot[bot]
be6754b7a8
Bump tempdir from 0.3.6 to 0.3.7
Bumps [tempdir](https://github.com/rust-lang/tempdir) from 0.3.6 to 0.3.7.
- [Release notes](https://github.com/rust-lang/tempdir/releases)
- [Commits](https://github.com/rust-lang/tempdir/compare/v0.3.6...v0.3.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-12 16:41:14 +00:00
dependabot[bot]
9327f957bd
Bump rand from 0.3.22 to 0.4.2
Bumps [rand](https://github.com/rust-lang-nursery/rand) from 0.3.22 to 0.4.2.
- [Release notes](https://github.com/rust-lang-nursery/rand/releases)
- [Changelog](https://github.com/rust-lang-nursery/rand/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang-nursery/rand/compare/0.3.22...0.4.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-12 07:26:39 +00:00
dependabot[bot]
c66dd59489
Bump libc from 0.2.39 to 0.2.42
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.39 to 0.2.42.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.39...0.2.42)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-11 17:13:54 +00:00
dependabot[bot]
7cbe0d4ceb
Bump unindent from 0.1.2 to 0.1.3
Bumps [unindent](https://github.com/dtolnay/indoc) from 0.1.2 to 0.1.3.
- [Release notes](https://github.com/dtolnay/indoc/releases)
- [Commits](https://github.com/dtolnay/indoc/compare/0.1.2...0.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-11 07:29:30 +00:00
dependabot[bot]
d1c18c01e9
Bump lazy_static from 1.0.0 to 1.0.1
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/commits/v1.0.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-08 07:30:48 +00:00
dependabot[bot]
5b5aaa03c9
Bump lazy_static from 0.2.11 to 1.0.0
Bumps [lazy_static](https://github.com/rust-lang-nursery/lazy-static.rs) from 0.2.11 to 1.0.0.
- [Release notes](https://github.com/rust-lang-nursery/lazy-static.rs/releases)
- [Commits](https://github.com/rust-lang-nursery/lazy-static.rs/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-07 07:25:48 +00:00
Ian Douglas Scott
fa867e93ea
Port 'tail' to Redox 2018-03-18 22:00:00 -07:00
Ian Douglas Scott
f76b23e3df
Port 'more' to Redox 2018-03-18 18:55:42 -07:00
Ian Douglas Scott
1532b207d2
Build chmod and install on Redox 2018-03-18 18:24:25 -07:00
Ian Douglas Scott
7d657e3c0d
Build shred on Redox 2018-03-16 18:47:35 -07:00
Ian Douglas Scott
301b9002ce
Port test to Redox 2018-03-16 18:39:53 -07:00
Ian Douglas Scott
6f4b91db93
Build hashsum, join, ln, ls, mkdir, mktemp, nl, ptx, sort on Redox 2018-03-14 22:10:28 -07:00
Ian Douglas Scott
1471e95b22
Make the 'cat' utility build on Redox 2018-03-14 10:21:12 -07:00
Alex Lyon
880a4973c1 Format everything using rustfmt 2018-03-12 01:20:58 -07:00
Alex Lyon
6330474b4f hostname: add support for Windows (and maybe other systems too) 2018-03-06 16:40:08 -08:00
Alex Lyon
15aaa8215e uucore: read from sys:uname on Redox 2018-03-05 17:31:33 -08:00
Alex Lyon
5d241da7ca arch: add support for building on Windows 2018-03-04 17:58:16 -08:00
Alex Lyon
293b16d281
Move rust-users fork under the uutils organization 2018-03-04 04:07:36 -08:00
Alex Lyon
d8e738c49b tests: disable some chgrp tests when part of the root group
Some tests failed when run using Docker because they assumed the
user would never be root.  This is more of a band-aid solution.
An actual fix would be to test see if something like these tests
were to succeed when the user is root.
2018-03-03 12:04:22 -08:00
Konstantin Pospelov
b33ce67d91 join: implement basic functionality
The basic implementation of join with some tests. The supported
options: -1, -2, -j, -a, -i.
2017-12-14 00:02:42 +03:00
Yury Krivopalov
b2ad51839b Add numfmt 2017-11-09 00:23:24 +03:00
Ian Douglas Scott
1a28a48ca3
Merge branch 'master' into expr-regex 2017-10-01 10:09:06 -07:00
Joshua Miller
e8073d2596 pin dependencies 2017-07-15 15:16:09 -05:00
Anthony Deschamps
41d1dfaf44 Partial implemantion of date. 2017-03-26 23:43:29 -04:00
Daan Hoogland
cd1f0690d7 create redox feature as subset of generic 2017-01-15 13:48:33 +01:00
Joshua Miller
133934f7cf add cat support for unix domain sockets
- adds conditional supports for unix domain sockets
   - adds unix domain socket test
   - adds Results to functions, removing unwraps
   - uutils `cat` used to panic on broken stdout pipes (e.g. `cat
     /dev/zero | head -c1`).  this is fixed in this PR
   - updated to exit 0 on success, and 1 if an error occurs.
   - adds docstrings
   - adds an error log on printing a directory
   - adds categorization of other filetypes for extensible
     differentiation of behaviors
   - adds OutputOptions struct to replace params for extensibility
   - adds correct status code on exit
2017-01-08 19:56:35 -06:00
Alexander Batischev
655804cff4 tests/chmod: protect umask with a mutex
`test_chmod_ugoa` and `test_chmod_many_options` both change umask, which
is global state. Since tests run concurrently, this might lead to
a situation where one of the tests changes umask to a value that screws
another test's checks. To prevent this, we introduce a mutex that should
be held by any test that changes umask.

Unfortunately, there's no way to hide umask behind this mutex and
enforce its usage: programmers will have to maintain the discipline
themselves.
2016-12-19 13:14:38 +03:00
Lei Zhang
e57f987190 All generic utilities compilable on Fuchsia now. 2016-12-14 23:29:40 -05:00
Lei Zhang
a34cd30f54 Enable compilation of ls on Fuchsia.
This updates the dependency of pretty-bytes to v0.2.
2016-12-14 23:29:38 -05:00
Lei Zhang
ba244794f0 Enable compilation of more on Fuchisa. 2016-12-08 13:08:17 -05:00
Lei Zhang
c2882da2e7 mktemp, nproc, ptx, and uniq compilable on Fuchsia now. 2016-11-30 10:50:47 -05:00
Lei Zhang
546f2855d5 Create a new feature for Fuchsia-enabled utilities. 2016-11-24 18:15:50 -05:00
Will Wykeham
b9ddb52630 Make Cargo.toml match the Makefile 2016-11-18 13:58:50 +00:00
Will Wykeham
2ad896a6ca Move 'mv' into generic now it builds properly on Windows 2016-11-18 13:58:49 +00:00
Wim Hueskes
a900b42a1f od: refactor: readability of expected output
use multiple lines in source too and use unindent crate to fix spacing
2016-09-01 00:00:52 +02:00