Commit graph

1161 commits

Author SHA1 Message Date
Alex Lyon
8ed383941d
Add Sphinx documentation to generate man pages 2017-12-28 22:02:58 -08:00
Alex Lyon
6d61b6805d
Merge pull request #1113 from tsliang/master
uname: change sysname flag to kernel-name
2017-12-27 03:23:40 -08:00
Tai Sassen-Liang
e79f5277ed uname: add missing paren 2017-12-27 11:57:06 +01:00
Tai Sassen-Liang
5d4e404765 uname: convert to clap; support obsolete option aliases 2017-12-27 11:29:06 +01:00
Alex Lyon
bc6d748a9e
Merge pull request #1119 from KeenS/install-ignore--c
install: ignore -c option for compatibility
2017-12-27 02:29:04 -08:00
Tai Sassen-Liang
c210d8d8c9 uname: change sysname flag to kernel-name
The --sysname flag in GNU uname was deprecated in 2002 and replaced by --kernel-name.
2017-12-27 11:24:29 +01:00
Sunrin SHIMURA (keen)
956a6aa1fb install: ignore -c option for compatibility 2017-12-27 17:52:53 +09:00
Sunrin SHIMURA (keen)
ee34206520 install: allow to install a file to a file 2017-12-27 17:31:19 +09:00
Alex Lyon
a1cf262414 rm: exit normally when -f is used with no operand 2017-12-26 15:36:21 -08:00
Konstantin Pospelov
4e0a0cf7bb join: implement the -t option 2017-12-24 16:22:48 +03:00
Konstantin Pospelov
743a5b68ed join: simplify closure for line parsing 2017-12-18 10:40:15 +03:00
Konstantin Pospelov
2a6d550f4b join: switch to clap 2017-12-17 16:36:46 +03:00
Konstantin Pospelov
d28e09de04 join: do not wrap stdin in BufReader 2017-12-16 19:26:25 +03:00
Konstantin Pospelov
3aa63ad9dd join: minor review points 2017-12-16 16:11:39 +03:00
Konstantin Pospelov
a04a77a477 join: switch to auto-generated main.rs 2017-12-16 16:09:46 +03: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
Cynede
908eaf610e
pwd: drop unused import 2017-12-11 14:50:56 +04:00
Cynede
6ef16b9221
pwd: fixes for UNC paths on Windows, match instead of plain unwrap 2017-12-11 14:49:20 +04:00
Mikhail Pukhlikov
f8e24439c9 pwd: add support for -L and -P options 2017-12-11 14:11:42 +04:00
Alex Lyon
26d6742c11
mknod, stdbuf: fix build 2017-12-11 00:27:38 -08:00
Alex Lyon
2e7f969404
chmod, install, uucore: fix build on Windows 2017-12-10 21:21:24 -08:00
Alex Lyon
479aeed9f6
mknod: use mode parsing in uucore 2017-12-10 21:10:26 -08:00
Alex Lyon
7aea948473
Remove pipe_* macros 2017-12-10 20:57:39 -08:00
Alex Lyon
6829ca3d10
chmod, install: move mode parsing into uucore 2017-12-10 20:11:05 -08:00
Alex Lyon
e2e77f8c70
du: only use snake case 2017-12-10 10:03:14 -08:00
Alex Lyon
2efd2b38be
du: remove inefficient multi-threading 2017-12-10 09:52:22 -08:00
Alex Lyon
9316fb4603
Merge pull request #1095 from ids1024/travis-redox2
Add cross build targeting Redox to Travis CI
2017-12-09 19:12:06 -08:00
Ian Douglas Scott
75141f0382
Fix cp build on Redox 2017-12-08 21:04:02 -08:00
Alex Lyon
2b4a685286
stdbuf: stop using GNU make as part of the build process 2017-12-08 18:50:18 -08:00
Alex Lyon
75f11e9635
Handle SIGPIPE correctly and autogenerate main() for each util 2017-12-08 15:05:07 -08:00
Alex Lyon
ecdafd830f
stdbuf: fix install on Macs 2017-11-18 21:54:01 -08:00
Alex Lyon
4ef2ef29cd
Fix broken tests due to updating Cargo.lock 2017-11-18 17:52:28 -08:00
Alex Lyon
8c846e2aa9
stdbuf: build shared library on Macs 2017-11-18 17:37:37 -08:00
Alex Lyon
de07c6218b
stdbuf: build the shared library again and fix the Makefile 2017-11-18 17:37:32 -08:00
Alex Lyon
4e034b02bd
Merge pull request #1076 from emielbeinema/remove-rust-crypto
Replace rust-crypto
2017-11-18 15:06:39 -08:00
Emiel Beinema
1e7ebcb9e1 hashsum: use macro for Digest implementation 2017-11-18 13:06:11 +01:00
Emiel Beinema
5d0c8895d9 hashsum: replace rustc_serialize with hex crate 2017-11-18 13:06:11 +01:00
Emiel Beinema
ff1ef82d84 hashsum: clean up and lock new dependencies 2017-11-18 13:06:11 +01:00
Emiel Beinema
b425d03a6b hashsum: replace rust-crypto crate 2017-11-18 13:06:07 +01:00
Emiel Beinema
0944f7bf6d hashsum: introduct local Digest trait 2017-11-18 13:05:59 +01:00
Alex Lyon
fc0e4cb98b
Merge pull request #1090 from shutefan/chmod-cleanup
chmod: avoid passing all args through function hierarchy
2017-11-15 13:12:12 -08:00
Alex Lyon
f7b97dc3d4
Merge pull request #1089 from flyrry/fix_env
fix --help and --version
2017-11-15 13:06:31 -08:00
Nathan Ross
517a263e25
Merge pull request #1088 from flyrry/cleanup_help
make cp print usage correctly
2017-11-14 17:55:31 -05:00
Nathan Ross
4f3a1772cb
Merge pull request #1091 from ykrivopalov/numfmt
Add numfmt
2017-11-14 17:54:00 -05:00
Gerald E Butler
0268cf75cd Added a check to see if the input file/path that ls is run on when using -l or other long options, that if the path part ends with '/' then it does not show it as a soft-link if it is a soft-link but, instead shows the directory contents of the directory the soft-link points to - see https://github.com/uutils/coreutils/issues/1093 2017-11-13 21:34:40 -05:00
Yury Krivopalov
b2ad51839b Add numfmt 2017-11-09 00:23:24 +03:00
shutefan
26b52f7604 chmod: avoid passing all args through function hierarchy 2017-11-01 18:15:54 +01:00
Sergei Mironenko
f0aa68aa1e fix --help and --version 2017-10-28 17:42:40 +03:00
Sergei Mironenko
d8c75e5ae4 make cp print custom usage only once 2017-10-25 19:40:02 +03:00
Valentin Lorentz
fe87116431 Make 'yes' 1000 times faster. 2017-10-21 21:23:06 +02:00
Alex Lyon
f2b952db54 Merge pull request #1082 from flyrry/finish_basename
basename: add -a, -s and -z flags
2017-10-09 11:33:06 -07:00
Sergei Mironenko
0b5a2c8743 basename: add -a, -s and -z flags 2017-10-09 11:02:12 +03:00
Alex Lyon
8ed510d49a Merge pull request #1080 from shutefan/add-truncate-to-tr
tr: add truncate flag
2017-10-07 15:55:51 -07:00
Alex Lyon
42be38f98f Merge pull request #1078 from shutefan/fix-warnings-in-cp
cp: fix compiler warnings
2017-10-07 15:52:26 -07:00
shutefan
4a96b56d60 cp: keep --preserve related code but ignore "unused" warnings 2017-10-06 21:54:00 +02:00
shutefan
ddbfafa684 tr: add truncate flag 2017-10-06 01:09:17 +02:00
shutefan
14160cab86 mv: split up uumain 2017-10-06 01:09:06 +02:00
shutefan
e1d41b84f3 travis: fix compiler warnings for 1.22 2017-10-06 00:49:43 +02:00
Alex Lyon
618531b366 Merge pull request #1079 from shutefan/add-quiet-flag-to-tail
tail: suppress headers when --quiet flag is used
2017-10-05 14:43:12 -07:00
shutefan
bf2a591b0a tail: suppress headers when --quiet flag is used 2017-10-05 21:25:21 +02:00
shutefan
82d6d24a97 cp: cast st_ino and st_nlink to u64 2017-10-05 20:34:08 +02:00
shutefan
83d25c0c70 cp: cast nNumberOfLinks to u64 2017-10-04 23:17:11 +02:00
shutefan
c20ce9bf74 cp: fix compiler warnings
Fixes seven compiler warnings in cp.rs:
- unused imports: `c_char`, `c_int`
  -> removed
- value assigned to `inode` is never read
  -> no more default value, immutable
- value assigned to `nlinks` is never read
  -> no more default value, immutable
- unused variable: `src_path`
  -> removed
- unused `std::result::Result` which must be used
  -> only in error on unsupported platforms (Windows) which is
     already handled with #[cfg(unix)]
- variable `preserve_context` is assigned to, but never used
  -> removed
- value assigned to `preserve_context` is never read
  -> see above, remove
2017-10-04 21:43:06 +02:00
Ian Douglas Scott
1a28a48ca3
Merge branch 'master' into expr-regex 2017-10-01 10:09:06 -07:00
Alex Lyon
ab259194f3 Merge pull request #1066 from Matt8898/master
cp: add support for --attributes-only and setting timestamps, links and xattrs
2017-10-01 01:43:09 -07:00
Yury Krivopalov
ac375d8b7d tr: add squeeze option 2017-09-21 22:15:05 +03:00
Yury Krivopalov
b4d8265a07 tr: generaze translation 2017-09-21 22:15:01 +03:00
Yury Krivopalov
c59e375c7a tr: use as_bytes on whole output string
On my environment on 1MiB file with this fix tr takes 30ms,
instead of 44ms without fix.
2017-09-21 22:14:56 +03:00
Matt8898
e33de238ca cp: add support for --preserve=all. 2017-09-13 16:21:33 +02:00
Matteo Semenzato
6476f6e616 cp: add support for preserving links on windows. 2017-08-23 15:20:23 +02:00
Matt8898
f7072b7dfe cp: add support for preserving links on unix. 2017-08-19 13:43:37 +02:00
Matt8898
4cb727f80b cp: Add support for preserving xattrs. 2017-08-19 13:42:44 +02:00
Matt8898
6d3e9eabe4 cp: add support for --preserve. 2017-08-19 13:42:44 +02:00
Matt8898
38dd8c5836 cp: use filetime to set timestamps. 2017-08-19 13:42:44 +02:00
Matt8898
03432db951 Added support for preserving timestamps. 2017-08-19 13:42:44 +02:00
Matt8898
48ae9b64ba cp: add support for --attributes-only. 2017-08-19 13:42:44 +02:00
Ian Douglas Scott
2853905ebc
install: Fix verbose mode
- Do not mark as unimplemented
- Use ascii quotes
- Print newline
2017-08-14 13:16:50 -07:00
Ian Douglas Scott
79d5d14d11
Make install work on Redox, by using fs::set_permissions
This is the same change I made earlier to chmod
2017-08-12 15:20:50 -07:00
Ian Douglas Scott
de4bee2321
mktemp fix for Redox 2017-08-12 15:17:37 -07:00
Ian Douglas Scott
13d97ee1cc
Correct behavior of cp -r with non-existent dest 2017-08-09 15:35:13 -07:00
Alex Lyon
c827795d17 Merge pull request #1056 from Matt8898/master
cp: add support for --reflink.
2017-07-28 23:34:47 -07:00
Matt8898
a73c74ecbc cp: add support for --reflink. 2017-07-28 10:42:21 +02:00
mpkh
61b15f5c1c Merge pull request #1061 from Arcterus/ls-fix
ls: fix line that was forgotten in #1057
2017-07-27 11:40:08 +04:00
mpkh
678cb5f81a Merge pull request #1060 from Arcterus/rm-refactor
rm: massive refactor
2017-07-27 11:29:04 +04:00
Alex Lyon
86aa1eb47a ls: fix line that was forgotten in #1057 2017-07-27 00:09:42 -07:00
Alex Lyon
b39689ac37 rm: massive refactor 2017-07-26 23:21:23 -07:00
Alex Lyon
4a5b76f678 Merge pull request #1057 from ids1024/ls
Fix ordering of ls -t, which was backwards
2017-07-26 21:18:00 -07:00
Ian Douglas Scott
3c3f5ab2a3
Fix ordering of ls -t, which was backwards 2017-07-26 20:57:44 -07:00
Ian Douglas Scott
b9446c0766
Make ls build on Redox 2017-07-25 16:26:36 -07:00
Ian Douglas Scott
99af79a7fa
Cast umask result, and comment about Redox 2017-07-23 17:28:16 -07:00
Ian Douglas Scott
d8494974bc
Make chmod use std where possible instead of libc; compile for Redox 2017-07-22 20:46:15 -07:00
Matt8898
32bd2843d5 cp: add support for --update 2017-07-22 12:03:26 +02:00
Joshua Miller
7dafb649d5 implement many copy flags
- Refactored towards extensibility
2017-07-16 19:20:07 -05:00
Joshua Miller
e8073d2596 pin dependencies 2017-07-15 15:16:09 -05:00
Alex Lyon
7ef27acb05 Merge pull request #1046 from Matt8898/cp
cp: Add -r flag
2017-07-02 14:12:08 -07:00
Alex Lyon
0c3a816148 expr: update onig to compile on Windows 2017-06-29 21:25:40 -07:00
Alex Lyon
7cfe0465ee Update for changes in regex 2017-06-29 20:59:20 -07:00
Arcterus
9abc3208d3 expr: implement regular expressions 2017-06-29 20:58:16 -07:00
Alex Lyon
eb75085595 Merge pull request #1035 from shinh/ln
ln: Fix how it selects the form
2017-06-29 20:33:33 -07:00
mpkh
ee9013215b Merge pull request #1044 from Shnatsel/fnv-hash-map
tr: use FnvHashMap instead of default HashMap backed by SipHasher
2017-06-02 13:56:13 +00:00
Matt8898
f4ea1a9cc5 cp: added -r/--recursive flag 2017-06-02 13:19:33 +02:00
Hiroki Noda
a30d732463 nproc: fix conditional compilation 2017-05-29 12:08:47 +09:00
Hiroki Noda
5e95d3752e nproc: fix comment position 2017-05-29 11:36:26 +09:00
Hiroki Noda
57dd3703d0 nproc: fix compilation on windows 2017-05-29 10:06:45 +09:00
Hiroki Noda
adb39d411b nproc: fix windows 2017-05-29 09:41:29 +09:00
Hiroki Noda
3a4b5ff8ed nproc: counts CPU cores via affinity mask if available on Linux
* Upgrade num_cpus crate to 1.5.0.
* Use sysconf(_SC_NPROCESSORS_CONF) when `--all` query given.
2017-05-29 08:56:33 +09:00
Sergey "Shnatsel" Davidoff
44cf7798bd tr: use FnvHashMap instead of default HashMap backed by SipHasher. FnvHashMap is much faster for small inputs like intergers, and we literally have a hashmap with chars as keys 2017-05-26 18:49:39 +03:00
Sergey "Shnatsel" Davidoff
c47ce19620 tr: use streaming instead of buffering the entire input and output 2017-05-24 17:58:04 +03:00
Matt8898
2a045fae37 uucore: add support for optflagmulti and optmulti. 2017-04-22 21:36:01 +02:00
theGeekPirate
589847aa2f Ensure "Linux" not targeted instead of "Linu" =D
#[cfg(not(target_os = "linux"))] spelling mistake
2017-04-19 00:18:29 -07:00
Shinichiro Hamaji
d556c9e398 ln: Fix how it selects the form
ln had a bunch of problems:

1. `ln -s target` didn't work (2nd form in help).
2. `ln -t tmp` wasn't an error. We should check if files are
   empty first.
3. `ln -s file dir` didn't create dir/file.
4. `ln -s -T file dir` was removing `dir`.
5. Test cases for 4 say this is for compatibility with GNU
   coreutils but I couldn't find this feature.
2017-04-09 02:32:57 +09:00
Shinichiro Hamaji
416c2b7f89 rm: Remove invalid symlinks
Checking with file.exists() was not good for this purpose as
Path::exists() returns false for invalid symlinks.
2017-04-09 01:33:07 +09:00
Alex Lyon
5f1cb07df8 Merge pull request #1033 from shinh/rm-dir-link
rm: Remove symlinks to directories without -r
2017-04-03 08:35:37 -07:00
Shinichiro Hamaji
bb1d8956eb rm: Fail when symlink_metadata() fails 2017-04-04 00:10:45 +09:00
Alex Lyon
a2de3997b9 Merge pull request #1031 from shinh/mkdir-dup
mkdir: Fix the behavior for existing files
2017-04-02 20:50:22 -07:00
Alex Lyon
df960d211c Merge pull request #1034 from shinh/ls-n
ls: Implement -n option
2017-04-02 20:46:13 -07:00
Shinichiro Hamaji
36d26c0f0d ls: Implement -n option 2017-04-02 13:11:48 +09:00
mpkh
a304d9e97e Merge pull request #1032 from shinh/ln-basename
ln: Use basename when target directory is specfied
2017-04-01 22:11:33 +04:00
Shinichiro Hamaji
4f6841df32 rm: Remove symlinks to directories without -r
Path::is_dir follows symlinks so it returns true for symlinks
to directories. Use symlink_metadata instead so you can remove
symlinks to directories without -r flag.
2017-04-01 23:45:34 +09:00
Shinichiro Hamaji
fc235e360e mkdir: Fix the behavior for existing files
Currently, mkdir always succeeds for existing files and it
even modifies their mode. With this change, only mkdir -p for
existing directories will be allowed.
2017-04-01 23:43:13 +09:00
Shinichiro Hamaji
47acbb0e82 ln: Use basename when target directory is specfied
The following should work, but without this patch, it tries
to create the link as x/y and it fails with EEXIST.

$ mkdir -p x/y
$ ln -s -t . x/y
2017-04-01 23:22:14 +09:00
Shinichiro Hamaji
e4ad79f46e ls: Implement -B option 2017-04-01 19:47:52 +09:00
Anthony Deschamps
41d1dfaf44 Partial implemantion of date. 2017-03-26 23:43:29 -04:00
Jian Zeng
daba29b832 Merge pull request #1026 from evestera/cat-numlines-notrailing
cat: fix for numbered lines w/ no trailing newline
2017-01-23 06:39:31 -06:00
Erik Vesteraas
21d9152cfe cat: Collect output state into a struct 2017-01-23 11:07:47 +01:00
Erik Vesteraas
81996915df cat: fix for numbered lines w/ no trailing newline
Make at_line_start persist between printing each file. This fixes an
issue when numbering lines in the output and one of the input files
does not have a trailing newline.
2017-01-23 03:34:47 +01:00
Anthony Deschamps
6dc1eb54c0 sort: Implement ignore-case
Test included.
2017-01-21 13:30:22 -05:00
Alex Lyon
e0bfbc3c23 Merge pull request #1020 from KeenS/ls-inode
ls: implement -i option
2017-01-10 00:34:35 -08:00
Sunrin SHIMURA (keen)
20b336ed3c remove redundant space 2017-01-10 10:37:34 +09: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
Sunrin SHIMURA (keen)
59e4bc431a ls: return String, not Option<String> 2016-12-26 12:27:06 +09:00
Sunrin SHIMURA (keen)
8a51ddf6fb ls: implement -i option 2016-12-25 14:39:29 +09:00
Alexander Batischev
67ac0c13b8 mkdir: trying to create existing dir is fine
Fixes #1017.

test_mkdir_dup_dir asserted that creating an existing directory is an
error, but that's not how GNU coreutils behaves. This has been reported
in #121, but wasn't fixed (only the `-p` case was).
2016-12-23 18:47:38 +03:00
Alexander Batischev
f2166fed0a tail: implement --pid. Closes #846.
Kudos to zHz for helping out with Windows API part.
2016-12-22 01:32:09 +03: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
Wim Hueskes
829ea9f445 od: fix od --help 2016-12-04 22:24:36 +01:00
Arcterus
5d9437bcaf chgrp: remove unwrap() in is_bind_root() 2016-12-01 06:02:58 -08:00
Arcterus
dc6ba887ba uucore: compile on Windows again 2016-11-30 03:51:49 -08:00
Arcterus
f5fce8dadb chgrp: detect bind mounted root 2016-11-30 03:50:07 -08:00
Arcterus
3ab82f9a66 uucore: read symlinked directories correctly in resolve_relative_path() 2016-11-30 03:50:07 -08:00
Alex Lyon
c403270ac3 Merge pull request #992 from kevgeniy/master
cat utility refactoring
2016-11-30 03:24:05 -08:00
Alex Lyon
04fcd823cc Merge pull request #1002 from antiagainst/itertools
Update dependencies and solve deprecated warnings.
2016-11-30 03:11:43 -08:00
Alex Lyon
7ec754ec1b Merge pull request #985 from knight42/fix-preserve-root
chgrp: fix bug in option --preserve-root
2016-11-30 02:59:19 -08:00
Lei Zhang
7d7fc68dee Solve compiler warning about using deprecated item.
PutBackN::new() is replaced by put_back_n.
2016-11-29 12:57:09 -05:00
Michael Gehring
268fe45f24 Merge pull request #1000 from antiagainst/fuchsia
Add a new feature to list all utilities that can compile for Fuchsia right now
2016-11-26 10:01:55 +01:00
Joseph Crail
78d2e8db27 Fix comment spelling 2016-11-25 14:36:56 -05:00
Lei Zhang
59c12433e0 Add Fuchsia as recognized host OS in uname. 2016-11-24 17:30:03 -05:00
Lei Zhang
e37468b630 Turn off utmpx and signals for Fuchsia.
Fuchsia uses musl as its libc; musl only has stub implementation
for utmpx. From their wiki, that is deliberately chosen.

Fuchsia doesn't have signals mechanism.
2016-11-24 17:15:43 -05:00
Lei Zhang
a2071c258e Remove unnecessary dependencies on libc in various utilities. 2016-11-24 11:17:36 -05:00
mpkh
de8d96ff7c Merge pull request #994 from Will-W/windowsfixes
Windowsfixes
2016-11-19 16:34:31 +04:00
kevgeniy
6d13bcf2da cat: fixed indentation 2016-11-18 22:30:12 +03:00
Will Wykeham
0809dce4a2 Fix a number of Windows build warnings 2016-11-18 13:58:36 +00:00
Will Wykeham
d55e2ee80a Fix mv build on Windows 2016-11-18 13:58:13 +00:00
Lei Zhang
aaa7274b63 Remove unnecessary dependencies of getopts & libc for utilities. 2016-11-17 17:43:31 -05:00
Alex Lyon
4f5e8f4566 Merge pull request #965 from wimh/od
od: implement remaining functionality
2016-11-10 15:13:10 -08:00
Wim Hueskes
2550e0f3c7 od: several small changes after review
* update status in README.md
* enable busybox tests
  Adding `CONFIG_DESKTOP` and `CONFIG_LONG_OPTS` to busybox config.
  These flags also enable other tests, but those utilities are not
  included in `TEST_PROGS`. (eg. awk)
* fix whitespace and small issues
* fix Eq imp for FormatWriter on nightly + beta
* fix indention in multifilereader.rs
* fix intermittent errors in tests
2016-11-09 20:26:55 +01:00
Zephiris
0d0087053f ls: Fix '-aR' recursion.
ls with -aR was recursing infinitely becacuse it
added ./.. to every node. I don't see a way to
avoid this except by cloning when that option
is used.
2016-11-05 01:29:55 -07:00
Zephiris
606c1badd2 ls: Change symlink behavior to be more POSIX compliant.
Symlink directories are read by default, and symlink targets are listed on
Windows.
2016-11-05 00:22:55 -07:00
Zephiris
ca8f5516e9 ln: Make sure we can symlink directories on Windows. 2016-11-05 00:22:55 -07:00
kevgeniy
0d56009c3a cat: remove recursion 2016-10-24 20:18:44 +03:00
kevgeniy
6228b06e29 cat: remove libc dependency 2016-10-24 05:23:54 +03:00
kevgeniy
72490ef956 cat: rewrote most part of the code
Rewrote cat to eliminate code duplication and make it safe

  - UnsafeWriter is replaced by BufWriter
  - write_lines (any option except -T and -v) and write_bytes (-T and -v
    options) are replaced by single write_lines method. A new method use
    ``write_to_end``, ``write_tab_to_end`` or ``write_nonprint_to_end``
    method to write all symbols untill the end of line in the right way.
  - Benchmarking (-n, -T and -v options respectively):
    | old (ns/iter)              | new (ns/iter)              |
    | -------------------------- | -------------------------- |
    | 6,501,496 (+/- 1,173,481)  | 6,683,158 (+/- 373,539)    |
    | 8,634,023 (+/- 547,595)    | 5,408,676 (+/- 715,458)    |
    | 24,056,507 (+/- 1,177,445) | 30,879,788 (+/- 1,180,598) |
2016-10-24 04:51:40 +03:00
evgeniy
4a2b8e3c52 cat: conditional compilation added 2016-10-18 19:09:36 +02:00
kevgeniy
2060048c79 Fixed and made the comments clearer 2016-10-16 17:13:02 +02:00
evgeniy
dd16c58ab4 cat utility refactoring:
- Less if branches
 - Unnecessary range variable deleted
 - Optional fail-assertion commented
2016-10-16 12:43:23 +02:00
Wim Hueskes
046ff62af6 more: fix build on windows 2016-10-06 23:35:16 +02:00
Wim Hueskes
4f91662057 who: use i64 instead of time_t
fixes build on raspberry pi 2 (armv7-unknown-linux-gnueabihf)
2016-09-03 22:18:10 +02:00
Wim Hueskes
99f70ba648 od: implement 16-bit floating point type 2016-09-03 21:47:36 +02:00
Wim Hueskes
fd5879dcf2 od: refactor parse_formats.rs
simplified, more but shorter functions
2016-09-02 21:29:58 +02:00
Wim Hueskes
184c4af76d od: fix zero width user input (-w0) 2016-09-02 21:27:06 +02:00
Wim Hueskes
92fc286b0e od: refactor uumain into smaller functions 2016-09-02 21:26:43 +02:00
Wim Hueskes
2c24911d9c od: refactor: create struct for formatting info
also properly document the alignment algorithm.
2016-09-02 21:26:22 +02:00
Wim Hueskes
83a1ff404f od: refactor: create InputDecoder to convert input
It reads from the input and provides data conversion functions.
2016-09-02 21:26:00 +02:00
Wim Hueskes
283a29fd2c od: refactor IntWriter, do not require parameters
use macros to define a function for each format so byte_size
and print_width do not have to be provided by the caller.
2016-09-02 21:25:38 +02:00
Wim Hueskes
f2db897c47 od: refactor: reduce arguments of odfunc
Pass the input stream itself instead of the parameters required to
open it. Create InputOffset to handle functionality required for
the byte offset.
2016-09-02 21:25:17 +02:00
Wim Hueskes
d705dc46ce od: improve/extend --help text 2016-09-02 21:24:56 +02:00
Wim Hueskes
2f12b06ba1 od: implement --traditional 2016-09-02 21:24:29 +02:00
Wim Hueskes
26ec46835c od: implement +size to skip bytes 2016-09-01 00:24:29 +02:00
Wim Hueskes
9e33c3a48c od: fix command-line parsing of file names 2016-09-01 00:23:34 +02:00
Wim Hueskes
e8eab8d3e8 od: implement ascii dump 2016-09-01 00:23:11 +02:00
Wim Hueskes
cea4297fdf od: implement --format / -t 2016-09-01 00:20:02 +02:00
Wim Hueskes
d15604b2e4 od: fix and add tests for simple format args 2016-09-01 00:19:37 +02:00
Wim Hueskes
c2d61a294e od: refactor: separate mod for parse_format_flags 2016-09-01 00:19:15 +02:00
Wim Hueskes
69bde1170d od: finish multi-byte support 2016-09-01 00:14:50 +02:00
Wim Hueskes
459db47c2b od: implement --skip-bytes and --read-bytes 2016-09-01 00:14:25 +02:00
Wim Hueskes
2b10cc47ff od: implement Read for MultifileReader
also add tests and fix error handling
2016-09-01 00:14:02 +02:00
Wim Hueskes
c15936ad68 od: fix performance issue with large values of -w
like -w100000000 or larger
2016-09-01 00:13:39 +02:00
Wim Hueskes
bd0424fa0c od: start with multi-byte support 2016-09-01 00:13:21 +02:00
Wim Hueskes
1164b9e118 od: fix file byte offset for non-octal types
removed binary offset, added no offset.
2016-09-01 00:12:59 +02:00
Wim Hueskes
24fb6d66c4 od: proper align different sized output 2016-09-01 00:12:37 +02:00
Wim Hueskes
45895be96d od: use structs to specify possible dump formats
remove extra padding too - preparing proper allignment
2016-09-01 00:12:11 +02:00
Wim Hueskes
f7d7beb79b od: implement --endian 2016-09-01 00:11:52 +02:00
Vladimir Matveev
d18be30c8a od: add byteorder_io
copied from: https://github.com/netvl/immeta/blob/4460ee/src/utils.rs
workaround for: https://github.com/BurntSushi/byteorder/issues/41
2016-09-01 00:11:42 +02:00
Wim Hueskes
4770690823 od: suppress duplicates 2016-09-01 00:11:23 +02:00
Wim Hueskes
80386ef04f od: split odfunc() 2016-09-01 00:11:02 +02:00
Wim Hueskes
e006a84136 od: refactor: do all printing in odfunc 2016-09-01 00:10:40 +02:00
Wim Hueskes
36b88f268d od: enable hexadecimal output 2016-09-01 00:10:23 +02:00
Wim Hueskes
e905c2ec71 od: do not panic on invalid user input
use macros from uucore where possible
2016-09-01 00:10:02 +02:00
Wim Hueskes
167d7d3ca9 od: implement -w (width) 2016-09-01 00:09:45 +02:00
Wim Hueskes
1b01f02e9e od: remove trailing spaces in output
can't find documentation confirming this behaviour
besides it does not work correctly on all formats
see also uutils/coreutils#922
2016-09-01 00:09:25 +02:00
Wim Hueskes
f45169d37c od: refactor: split into modules 2016-09-01 00:09:04 +02:00
Wim Hueskes
104f8eb509 od: implement 64-bit floating point output 2016-09-01 00:08:41 +02:00
Wim Hueskes
f53aefa7e9 od: implement 32-bit floating point output 2016-09-01 00:08:25 +02:00
Wim Hueskes
5c495359c1 od: refactor: convert bytes using byteorder crate 2016-09-01 00:08:00 +02:00
Wim Hueskes
3e143217a9 od: refactor sign_extend
easier to understand algoritm which does not use unsafe
2016-09-01 00:01:55 +02:00
Wim Hueskes
e0b7ff1953 od: implement --help and --version 2016-09-01 00:01:35 +02:00
Alex Lyon
362cabe1a6 hashsum: implement SHAKE-128 and SHAKE-256 2016-08-30 17:33:18 -07:00
knight42
f8bd9e2a1b chown,chgrp: fix bug in option --preserve-root 2016-08-29 11:19:15 +08:00
knight42
d0196b82ad touch: respect -h 2016-08-28 07:12:25 +08:00
knight42
89ac03d1c2 uucore::fs: add fn resolve_relative_path 2016-08-28 00:02:58 +08:00
knight42
136ca4e197 chgrp,chown: fix bug in option --preserve-root 2016-08-28 00:02:58 +08:00
Martin Kysel
23bab3df69 moved more to unix utils, minor review updates 2016-08-23 11:40:09 +01:00
Martin Kysel
a90aec3f1b add author name 2016-08-23 10:50:45 +01:00
Martin Kysel
7d77b9720d Initial more implementation 2016-08-23 10:45:51 +01:00
Nathan Ross
ae0e1c4768 Merge pull request #977 from knight42/chgrp
Implement chgrp
2016-08-21 06:39:54 -04:00
Knight
9dda0bcd25 chgrp: implemented 2016-08-21 17:04:38 +08:00
Knight
8cba71adb4 chgrp: add entries 2016-08-21 17:04:02 +08:00
Knight
a4bf852207 mv: cleanup the code 2016-08-21 14:57:28 +08:00
mpkh
2981eb5112 Merge pull request #975 from nathanross/normalize-coreopts-squashed
DRYer code and more UX consistency through use of coreopts
2016-08-20 18:44:17 +00:00
Nathan Ross
36503a77c7 impl: use coreopts for brevity and consistent UX 2016-08-20 10:07:24 -04:00
Nathan Ross
edc3bf7c08 impl: dryer use of coreopts 2016-08-20 10:07:24 -04:00
Nathan Ross
ee3aaa017f uucore: allow 'wrong number of arguments' macro to be more precise 2016-08-20 10:07:08 -04:00
Michael Gehring
dcefbd54c6 Merge pull request #974 from knight42/fix-bugs
Fix bugs of `pinky` and `who`
2016-08-20 15:16:19 +02:00
Jian Zeng
14a34b48bf Merge pull request #969 from robertclancy/tail-f-dev-stdin-bug
tail: fix bug when following /dev/stdin
2016-08-20 20:25:08 +08:00
Knight
fb53c019b4 who: limit the parts of split host to 2 2016-08-20 20:22:18 +08:00
Knight
34d2224098 pinky: correct the test 2016-08-20 20:22:18 +08:00
Robert Clancy
3a0c23561e tail: fix bug when following /dev/stdin
main panics when following /dev/stdin since /dev/stdin is not seekable.
Check to see if file is seekable and use unbounded_seek if so.

Also `tail -f` with no files should not follow stdin.
2016-08-20 11:47:02 +01:00
Nathan Ross
268b691881 uucore: add support for optflagopt to coreopts 2016-08-20 05:58:36 -04:00
Nathan Ross
cb1b32cda1 uucore: fix utility name in coreopts parsing error messages 2016-08-20 05:58:36 -04:00
Knight
9ecf899e3d Remove uucore::c_types 2016-08-20 12:12:49 +08:00
Knight
ddf47fab31 groups: use uucore::entries::get_groups instead 2016-08-20 11:59:58 +08:00
Knight
f49ee5b58b uname: use utsname in libc instead 2016-08-20 11:59:58 +08:00
Knight
ac6bc5886b arch: use utsname in libc instead 2016-08-20 11:59:58 +08:00
Knight
c63aa19cd1 Add uucore::utsname to get system info 2016-08-20 11:59:58 +08:00
Knight
b6c864b7f3 uucore::process: add functions to obtain uid/gid, euid/egid 2016-08-20 03:24:23 +08:00
Knight
369c2c2d83 id: use uucore::entries 2016-08-20 03:24:23 +08:00
Knight
2b96f8f0c1 chroot: use uucore::entries 2016-08-20 03:10:37 +08:00
Knight
270290efe6 whoami: use uucore::entries 2016-08-20 03:10:36 +08:00
Knight
99f0114450 stat: use uucore::entries 2016-08-20 03:10:36 +08:00
Knight
40e6c5a397 pinky: use uucore::entries 2016-08-20 03:10:36 +08:00
Knight
f66aaa8b78 ls: use uucore::entries 2016-08-20 03:10:36 +08:00
Knight
40e01b94f3 chown: use uucore::entries 2016-08-20 03:10:36 +08:00
Knight
799804e455 Add uucore::entries 2016-08-20 03:10:36 +08:00
Knight
c2fb66dfcb uucore::utmpx: fix doctest errors 2016-08-20 02:55:17 +08:00
Knight
bc61634dba tr: use HashMap in stdlib instead of vec_map 2016-08-20 02:25:55 +08:00
Nathan Ross
9d2616442a Merge pull request #963 from alsuren/sort--merge
Implement sort  --merge
2016-08-12 20:42:30 -04:00
David Laban
cf93826eee sort --check refactor to use iterator
This allows us to check files without bringing them entirely into
memory. Also makes it easier to find the disorder in
    (seq 9; echo 0) | sort --check
(points at the end of the file, where our previous version would
point at the start of the file)

Itertools' .coalesce() was the most useful helper that I could find
for comparing adjacent values in an iterator. It is designed for
implementing things like .dedup(), so the resulting code is a little
unintuitive.
2016-08-13 00:42:44 +01:00
David Laban
3531c46fb8 sort --merge --unique
This uses Itertools' dedup() rather than Vec::dedup(). There is probably
a cleaner, more polymorphic way to do this. Suggestions welcome.
2016-08-13 00:42:44 +01:00
David Laban
e1af1520e7 sort: make compare_by honour settings.reverse
This allows sort --merge --reverse to work as well.
2016-08-13 00:42:43 +01:00
David Laban
8a8319a337 sort --merge works, but ignores --unique and --reverse
FileMerger receives Lines Iterables of the pre-sorted input files
via push_file() It implements Iterator, which yields lines from the
input files in (merged) sorted order. If the input files are not sorted,
then the behavior is undefined.

Internally, FileMerger uses a
std::collections::BinaryHeap<MergeableFile>.

MergeableFile is an internal helper that implements Ord in a way that
BinaryHeap can use (note that we want smallest-first, but BinaryHeap
returns largest first, so MergeableFile::cmp() calls reverse() on
whatever compare_by() returns.
2016-08-13 00:42:43 +01:00
David Laban
76abc7e51d sort: refactor compare_fns into Settings
Also split out a compare_by(a, b, settings) helper function,
which may be used by --merge, later.
2016-08-13 00:26:20 +01:00
Knight
f19d361013 uniq: add test for case-insensitive comparison 2016-08-13 02:04:19 +08:00
Knight
0ea5314ea1 uucore: make libc optional 2016-08-13 02:00:20 +08:00
mpkh
96e8748336 Merge pull request #945 from nathanross/cut-fix-chars-ranges
cut: make chars mode use byte mode behavior
2016-08-12 04:56:47 +00:00
nathanross
f2dc230d0e uucore: coreopts alignment, spacing, and optional usage 2016-08-11 23:20:39 -04:00
Nathan Ross
4a2532fc12 cut: chars mode has same behavior as byte mode 2016-08-11 18:49:20 -04:00
Nathan Ross
2e41535d69 pinky: switch to using new coreopts syntax 2016-08-11 14:37:26 -04:00
Nathan Ross
6ecf9ecf66 who: switch to using new coreopts syntax 2016-08-11 14:37:25 -04:00
Nathan Ross
617e8ca682 arch: switch to using new coreopts syntax 2016-08-11 14:37:25 -04:00
Nathan Ross
e019b2657e cut: switch to using new coreopts syntax 2016-08-11 14:37:24 -04:00
Nathan Ross
f8509240df uucore: require version; syntax; summary; longhelp 2016-08-11 14:37:16 -04:00
Knight
87894dedca who: implemented 2016-08-11 15:41:28 +08:00
Knight
18da533538 uucore::utmpx: change API and fix error 2016-08-11 15:41:12 +08:00
Knight
8c6cd72848 who: add entries 2016-08-11 00:19:26 +08:00
Knight
963ab9d321 users: use uucore::utmpx 2016-08-10 15:24:55 +08:00
Knight
f4c50921d8 uptime: use uucore::utmpx 2016-08-10 15:24:45 +08:00
Knight
77ef1580c2 pinky: use uucore::utmpx 2016-08-10 15:24:29 +08:00
Knight
301a240b73 uucore::utmpx: refine implementation 2016-08-10 15:23:07 +08:00
Knight
163a3a2540 coreopts: fix error when using msg_wrong_number_of_arguments macro 2016-08-10 13:59:30 +08:00
Knight
23979542af uucore: conditional enable different features 2016-08-10 13:57:40 +08:00
Knight
c9dde462c7 uucore: export latest libc 2016-08-10 01:00:39 +08:00
Knight
7d5a4dbf20 coreopts: display package name instead of module path 2016-08-10 00:16:06 +08:00
Nathan Ross
5aaff02195 cut: implement zero-terminated option
no changes to char mode because removal
of specialized char mode behavior is pending
2016-08-08 20:15:53 -04:00
Nathan Ross
1bf2c82520 arch: use message templates for consistent, original-work error handling 2016-08-08 04:36:33 -04:00
Nathan Ross
d56389aca0 cut: use message templates for consistent error UX 2016-08-08 04:32:48 -04:00
Nathan Ross
3eb9bbf4b5 uucore: CoreOptions error and version message templates 2016-08-08 04:29:11 -04:00
Nathan Ross
c91fd51197 uucore: add message templates 2016-08-08 03:05:36 -04:00
Nathan Ross
ea6b0e55ad cut: provide original-work help message and option descriptions 2016-08-07 23:16:15 -04:00
Chris Nikkel
cdfdc3a2bd uniq: add command line option -z for zero terminated input and output 2016-08-06 18:41:47 -07:00
Knight
0d48744c0f base64: simplified 2016-08-07 00:41:53 +08:00
Knight
9c7ff133dc base32: implemented 2016-08-07 00:41:52 +08:00
Knight
276d2ccd53 uucore: add module encoding 2016-08-07 00:41:52 +08:00
Knight
7c5416799e base32: add entries 2016-08-06 11:45:03 +08:00
Corey Farwell
01da600f71 Remove unused variable binding. 2016-08-05 09:06:39 -04:00
Corey Farwell
8fe3eac087 Remove unused imports. 2016-08-05 09:05:12 -04:00
Corey Farwell
eca7543c61 Cleanup logic around wait_or_timeout exit status handling. 2016-08-04 21:30:50 -04:00
Nathan Ross
a8f5b430df Merge pull request #935 from frewsxcv/refactor-time
Prefer handling `Duration` over `f32` when dealing with times.
2016-08-04 21:17:38 -04:00
Corey Farwell
99fda0b716 Prefer handling Duration over f32 when dealing with times.
Also refactored out usage of the `time` crate in `uucore`.
2016-08-04 19:21:30 -04:00
Knight
d4ac9f22fc uptime & users: move functions extern to uucore::utmpx 2016-08-04 23:39:30 +08:00
Knight
833d50e192 pinky: obtain correct timestamp 2016-08-04 23:39:30 +08:00
Knight
0020d5c80c uucore: update utmpx 2016-08-04 22:37:54 +08:00
Corey Farwell
160f7ed5f4 Use setpgid from libc. 2016-08-04 08:34:33 -04:00
David Laban
6751d2c708 implement sort --stable
Made a new function sort_by(lines, compare_fns), which accepts a
list of compare_fns and calls lines.sort_by() with a closure that
calls each compare_fn in turn until one returns something other
than equal.

Default behavior ensures that String::cmp is the last element in the
compare_fns list (referred to as 'last resort' sorting by man sort).
Passing --stable (-s) turns this behaviour off.

Test cases provided for `sort --month` and `sort --month --stable`.
2016-08-03 07:56:40 +01:00
Mark Karasek
59ad388cce ls: remove dependence on nightly 2016-07-29 07:07:38 -07:00
Mark Karasek
900cd41eb6 ls improvments
* Add options -c, -F, -L, -l, -r, -R, -S, -t, -U, --color
* Fix options -a, -A
* Remove unused options
* Output in columns when not using -l
* Output date with -l
2016-07-28 17:41:52 -07:00
Kevin Robert Stravers
5226ba963c ls: Implement the '-a' (all) flag
The all flag did not cull/remove the directory entries starting with a
dot. The help message indicates it should. The implementation checks
if the string starts with a dot whilst also using '-a' to determine
whether a DirEntry is to be printed.
2016-07-27 11:29:27 +02:00
Kevin Robert Stravers
0afe9b347e ls: Show columns correctly padded according to the largest file and the largest symlink count 2016-07-26 16:05:20 +02:00
mpkh
da0de488e6 Merge pull request #913 from knight42/pinky
Implement pinky
2016-07-26 13:38:53 +04:00
Knight
be20d8605d pinky: add tests 2016-07-26 17:26:22 +08:00