Niyaz Nigmatullin
84a741fe91
cp: add -H
option, add tests, fix test
2022-09-23 20:31:24 +03:00
dependabot[bot]
39d9fa31f6
build(deps): bump selinux from 0.2.7 to 0.3.0
...
Bumps [selinux](https://github.com/koutheir/selinux ) from 0.2.7 to 0.3.0.
- [Release notes](https://github.com/koutheir/selinux/releases )
- [Changelog](https://github.com/koutheir/selinux/blob/master/CHANGELOG.md )
- [Commits](https://github.com/koutheir/selinux/commits )
---
updated-dependencies:
- dependency-name: selinux
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-19 06:46:06 +00:00
Niyaz Nigmatullin
2ce999c959
cp: fix cp-i
GNU test
...
`cp` in interactive mode used to write to stdout asking for
overwrite. GNU version writes to stderr.
Changed: write to stderr to make compatible with GNU.
2022-09-17 19:15:52 +03:00
Daniel Hofstetter
e5e6a48200
cp: fix indentation within uu_app()
2022-08-30 13:59:28 +02:00
Terts Diepraam
15180249fc
Version 0.0.15
2022-08-20 13:13:22 +02:00
dependabot[bot]
6193cdbba8
build(deps): bump libc from 0.2.131 to 0.2.132
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.131 to 0.2.132.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.131...0.2.132 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-19 12:22:35 +00:00
Terts Diepraam
b983355bc4
uucore & cp: remove show_error_custom_description
macros show_usage_error
2022-08-18 10:44:59 +02:00
Daniel Hofstetter
c0c26c4c58
Replace deprecated values_of() with get_many()
2022-08-11 13:49:09 +02:00
Daniel Hofstetter
07b218e55a
Replace possible_values() with value_parser()
2022-08-04 14:38:10 +02:00
Pierre Marsais
e1991525af
cp: Implement --sparse
flag ( #3766 )
...
* cp: Refactor `reflink`/`sparse` handling to enable `--sparse` flag
`--sparse` and `--reflink` options have a lot of similarities:
- They have similar options (`always`, `never`, `auto`)
- Both need OS specific handling
- They can be mutually exclusive
Prior to this change, `sparse` was defined as `CopyMode`, but `reflink`
wasn't. Given the similarities, it makes sense to handle them similarly.
The idea behind this change is to move all OS specific file copy
handling in the `copy_on_write_*` functions. Those function then
dispatch to the correct logic depending on the arguments (at the moment,
the tuple `(reflink, sparse)`).
Also, move the handling of `--reflink=never` from `copy_file` to the
`copy_on_write_*` functions, at the cost of a bit of code duplication,
to allow `copy_on_write_*` to handle all cases (and later handle
`--reflink=never` with `--sparse`).
* cp: Implement `--sparse` flag
This begins to address #3362
At the moment, only the `--sparse=always` logic matches the requirement
form GNU cp info page, i.e. always make holes in destination when
possible.
Sparse copy is done by copying the source to the destination block by
block (blocks being of the destination's fs block size). If the block
only holds NUL bytes, we don't write to the destination.
About `--sparse=auto`: according to GNU cp info page, the destination
file will be made sparse if the source file is sparse as well. The next
step are likely to use `lseek` with `SEEK_HOLE` detect if the source
file has holes. Currently, this has the same behaviour as
`--sparse=never`. This `SEEK_HOLE` logic can also be applied to
`--sparse=always` to improve performance when copying sparse files.
About `--sparse=never`: from my understanding, it is not guaranteed that
Rust's `fs::copy` will always produce a file with no holes, as
["platform-specific behavior may change in the
future"](https://doc.rust-lang.org/std/fs/fn.copy.html#platform-specific-behavior )
About other platforms:
- `macos`: The solution may be to use `fcntl` command `F_PUNCHHOLE`.
- `windows`: I only see `FSCTL_SET_SPARSE`.
This should pass the following GNU tests:
- `tests/cp/sparse.sh`
- `tests/cp/sparse-2.sh`
- `tests/cp/sparse-extents.sh`
- `tests/cp/sparse-extents-2.sh`
`sparse-perf.sh` needs `--sparse=auto`, and in particular a way to skip
holes in the source file.
Co-authored-by: Sylvestre Ledru <sylvestre@debian.org>
2022-08-04 13:22:59 +02:00
Pierre Marsais
90a9829287
cp: truncate destination when --reflink
is set ( #3759 )
...
* cp: truncate destination when `--reflink` is set
This is needed in order to allow overriding an existing file.
```
$ truncate -s 512M /tmp/disk.img
$ mkfs.btrfs /tmp/disk.img
[...]
$ mkdir /tmp/disk
$ sudo mount /tmp/disk.img /tmp/disk
$ sudo chown $(id -u):$(id -g) -R /tmp/disk
$ for i in $(seq 0 8192); do echo -ne 'a' >>/tmp/disk/src1; done
$ echo "success" >/tmp/disk/src2
$
$ # GNU ls supports overriding files created with `--reflink`
$ cp --reflink=always /tmp/disk/src1 /tmp/disk/dst1
$ cp --reflink=always /tmp/disk/src2 /tmp/disk/dst1
$ cat /tmp/disk/dst1
success
$
$ # Now testing with uutils
$ cargo run cp --reflink=always /tmp/disk/src1 /tmp/disk/dst2
Finished dev [unoptimized + debuginfo] target(s) in 0.25s
Running `target/debug/coreutils cp --reflink=always /tmp/disk/src1 /tmp/disk/dst2`
$ cargo run cp --reflink=always /tmp/disk/src2 /tmp/disk/dst2
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target/debug/coreutils cp --reflink=always /tmp/disk/src2 /tmp/disk/dst2`
cp: failed to clone "/tmp/disk/src2" from "/tmp/disk/dst2": Invalid argument (os error 22)
$ cat /tmp/disk/dst2
[lots of 'a']
$
$ # With truncate(true)
$ cargo run cp --reflink=always /tmp/disk/src1 /tmp/disk/dst3
Finished dev [unoptimized + debuginfo] target(s) in 7.98s
Running `target/debug/coreutils cp --reflink=always /tmp/disk/src1 /tmp/disk/dst3`
$ cargo run cp --reflink=always /tmp/disk/src2 /tmp/disk/dst3
Finished dev [unoptimized + debuginfo] target(s) in 0.27s
Running `target/debug/coreutils cp --reflink=always /tmp/disk/src2 /tmp/disk/dst3`
$ cat /tmp/disk/dst3
success
```
2022-08-04 08:50:19 +02:00
Daniel Hofstetter
7c3116330e
Replace deprecated is_present() with contains_id()
2022-08-02 15:21:39 +02:00
Daniel Hofstetter
fc4544c42b
bump clap from 3.1.18 to 3.2.15
2022-07-29 14:05:02 +02:00
Andrew Baptist
cc08e1cc3a
Update to handle all the latest cargo warnings
2022-07-18 13:20:49 -04:00
Niyaz Nigmatullin
4db08273b3
ln: error on --force when src=dst and dst is regular file
2022-07-18 08:17:37 +03:00
Sylvestre Ledru
e239ed9417
Merge pull request #3692 from jfinkels/cp-preserve-perm-link
...
cp: correctly copy attributes of a dangling symbolic link
2022-07-11 22:50:24 +02:00
Niyaz Nigmatullin
9d285e953d
Realpath symlinks handling, solves issue #3669 ( #3703 )
2022-07-10 16:49:25 +02:00
Sylvestre Ledru
450bd3b597
Remove the is_symlink function
2022-07-06 11:18:31 +02:00
Sylvestre Ledru
334a0c13ba
Merge branch 'main' into cp-preserve-perm-link
2022-07-05 11:08:55 +02:00
Jeffrey Finkelstein
df83d59b2d
uucore: add backport for Path::is_symlink()
...
Add a `uucore::fs::is_symlink()` function that takes in a
`std::path::Path` and decides whether the given path is a symbolic
link. This is essentially a backport of the `Path::is_symlink()`
function that appears in Rust version 1.58.0. This commit also
replaces some now-duplicate code in `chmod`, `cp`, `ln`, and `rmdir`
that checks whether a path is a symbolic link with a call to
`is_symlink()`.
Technically, this commit slightly changes the behavior of
`cp`. Previously, there was a line of code like this
if fs::symlink_metadata(&source)?.file_type().is_symlink() {
where the `?` operator propagates an error from `symlink_metadata()`
to the caller. Now the line of code is
if is_symlink(source) {
in which any error from `symlink_metadata()` has been converted to
just be a `false` value. I believe this is a satisfactory tradeoff to
make, since an error in accessing the file will likely cause an error
later in the same code path.
2022-07-04 17:25:52 -04:00
Jeffrey Finkelstein
4780690caa
cp: copy attributes of dangling symbolic link
...
Fix a bug in which `cp` incorrectly exited with an error when
attempting to copy the attributes of a dangling symbolic link (that
is, when running `cp -P -p`).
Fixes #3531 .
2022-07-03 15:17:00 -04:00
Jeffrey Finkelstein
a7a9da9672
cp: refactor convenience function is_symlink()
...
Refactor common code used in several places into a convenience
function `is_symlink()` that behaves like `Path::is_symlink()` added
in Rust 1.58.0. (We support earlier versions of Rust so we cannot use
the standard library version of this function.)
2022-07-03 15:17:00 -04:00
Daniel Hofstetter
6d8aa1aaff
cp: disable "extra_unused_lifetimes" lint
2022-07-01 14:54:20 +02:00
Phil Gebhardt
c49d8e6113
cp: make --b=simple
protective of source
...
When `--backup` is supplied, `cp` will take a backup of *destination* before *source* is copied. When `--backup=simple` is supplied, it is possible for the backup path for *destination* to equal the path for *source*, destroying source before the copy is made. This change prevents this by returning an error instead.
This fixes https://github.com/uutils/coreutils/issues/3629
2022-06-18 03:56:46 -07:00
Sylvestre Ledru
2fcf892dbc
cp: Replace ioctl-sys by libc for the call to ficlone
2022-06-14 16:01:44 +02:00
dependabot[bot]
6412232e2b
build(deps): bump exacl from 0.8.0 to 0.9.0
...
Bumps [exacl](https://github.com/byllyfish/exacl ) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/byllyfish/exacl/releases )
- [Changelog](https://github.com/byllyfish/exacl/blob/main/CHANGELOG.md )
- [Commits](https://github.com/byllyfish/exacl/compare/v0.8.0...v0.9.0 )
---
updated-dependencies:
- dependency-name: exacl
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 10:06:13 +02:00
Terts Diepraam
eae07adfb1
Version 0.0.14 ( #3553 )
...
Version 0.0.14
2022-05-22 19:57:19 +02:00
dependabot[bot]
cd743c2fd1
build(deps): bump libc from 0.2.125 to 0.2.126
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.125 to 0.2.126.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.125...0.2.126 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 07:13:42 +00:00
Terts Diepraam
0acfa07d77
all: add value hints
2022-05-13 16:15:50 +02:00
Sylvestre Ledru
309347e218
Merge pull request #3478 from uutils/dependabot/cargo/xattr-0.2.3
...
build(deps): bump xattr from 0.2.2 to 0.2.3
2022-05-05 22:37:05 +02:00
Terts Diepraam
c7b7f19559
cp: use new clap error mechanism
2022-05-04 21:32:14 +02:00
dependabot[bot]
3e30569c2f
build(deps): bump xattr from 0.2.2 to 0.2.3
...
Bumps [xattr](https://github.com/Stebalien/xattr ) from 0.2.2 to 0.2.3.
- [Release notes](https://github.com/Stebalien/xattr/releases )
- [Commits](https://github.com/Stebalien/xattr/commits )
---
updated-dependencies:
- dependency-name: xattr
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-04 06:13:02 +00:00
anastygnome
badf947f8a
Do not dereference symlink even when dangling ( fix #3364 )
...
Fixes an issue with cp not copying symlinks in spite of the -P (no dereference option)
Fix issue #3364
Performance improvements
Avoid useless read from metadata and reuse previous dest information
Signed-off-by: anastygnome <noreplygit@protonmail.com>
2022-05-03 19:53:23 +02:00
dependabot[bot]
de6aa6de9b
build(deps): bump libc from 0.2.124 to 0.2.125
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.124 to 0.2.125.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.124...0.2.125 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 06:36:41 +00:00
Sylvestre Ledru
bf3a86f654
Merge pull request #3451 from ndd7xv/help-discrepancies
...
fix -h and --help discrepancies
2022-04-28 08:19:41 +02:00
ndd7xv
88752ecc3e
fix -h and --help discrepancies
...
addresses https://github.com/uutils/coreutils/issues/3370
2022-04-27 23:16:36 -04:00
dependabot[bot]
3cee681e82
build(deps): bump libc from 0.2.121 to 0.2.124
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.121 to 0.2.124.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.121...0.2.124 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-26 11:23:42 +02:00
Justin Tracey
2a0d58d060
get android builds to compile and pass tests
2022-04-20 08:44:49 +02:00
Terts Diepraam
af9f718936
Change edition to 2021
2022-04-05 10:39:31 +02:00
dependabot[bot]
e82ef6966e
build(deps): bump exacl from 0.6.0 to 0.8.0
...
Bumps [exacl](https://github.com/byllyfish/exacl ) from 0.6.0 to 0.8.0.
- [Release notes](https://github.com/byllyfish/exacl/releases )
- [Changelog](https://github.com/byllyfish/exacl/blob/main/CHANGELOG.md )
- [Commits](https://github.com/byllyfish/exacl/compare/v0.6.0...v0.8.0 )
---
updated-dependencies:
- dependency-name: exacl
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 21:46:57 +02:00
Terts Diepraam
b7809bd889
version 0.0.13
2022-04-02 11:04:27 +02:00
Terts Diepraam
7203340917
Merge pull request #3237 from uutils/dependabot/cargo/ioctl-sys-0.8.0
...
build(deps): bump ioctl-sys from 0.6.0 to 0.8.0
2022-03-31 01:09:22 +02:00
Jeffrey Finkelstein
e357d2650c
clippy fixes from nightly rust
2022-03-22 21:44:33 -04:00
Terts Diepraam
fc1fa8d1f7
Merge pull request #3027 from shoriminimoe/2986-cp
...
cp: only allow directory for -t
2022-03-22 23:08:54 +01:00
dependabot[bot]
34d2d1d05e
build(deps): bump libc from 0.2.113 to 0.2.121
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.113 to 0.2.121.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.113...0.2.121 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-03-20 18:14:52 +00:00
dependabot[bot]
aea30bd4a7
build(deps): bump ioctl-sys from 0.6.0 to 0.8.0
...
Bumps [ioctl-sys](https://github.com/jmesmon/ioctl ) from 0.6.0 to 0.8.0.
- [Release notes](https://github.com/jmesmon/ioctl/releases )
- [Commits](https://github.com/jmesmon/ioctl/compare/ioctl-sys-0.6.0...ioctl-sys-0.8.0 )
---
updated-dependencies:
- dependency-name: ioctl-sys
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-03-20 16:46:37 +00:00
Sam Caldwell
f40fecf86d
Add UError impl for clap::Error
2022-03-20 13:50:39 +01:00
Sam Caldwell
979909e371
cp: better error message for target-directory
2022-03-20 13:50:39 +01:00
Sam Caldwell
efd627bb20
cp: only allow directory for -t
2022-03-20 13:50:39 +01:00
Terts Diepraam
20212be4c8
fix clippy errors related to clap upgrade from 3.0.10 to 3.1.6
2022-03-17 22:46:56 +01:00
dependabot[bot]
59440d35c0
build(deps): bump clap from 3.0.10 to 3.1.6
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.0.10 to 3.1.6.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.0.10...v3.1.6 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-03-17 13:06:29 +00:00
Ryan Gonzalez
2dc3d867d8
cp: Avoid following a destination symlink with -P
...
Previously, given 'cp -P a b', where 'a' and 'b' were both symlinks, cp
would end up replacing the target of 'b'.
Signed-off-by: Ryan Gonzalez <ryan.gonzalez@collabora.com>
2022-03-14 17:49:42 -05:00
Sylvestre Ledru
37a0a74c19
Merge pull request #3033 from water-ghosts/cp-lb
...
cp: Create backup before hardlink
2022-03-07 08:18:36 +01:00
Sylvestre Ledru
54a10e955a
Update of the cargo.lock url to point to the right branch
2022-03-06 22:13:17 +01:00
Davide Cavalca
19af43222b
Include license text in all published crates
2022-03-05 21:21:46 +01:00
Sylvestre Ledru
63cf0d20b4
Merge branch 'main' into cp-lb
2022-03-03 23:02:57 +01:00
Eli Youngs
eace4bc907
cp: Support copying FIFOs with -r ( #3032 )
2022-03-03 22:58:27 +01:00
Daniel Hofstetter
5cce2b0d9a
cp: fix typo in help text
2022-02-28 15:16:47 +01:00
Terts Diepraam
9aca050e4a
cp: override args
...
These arguments should not have been in conflict with each other, but silently override each other.
2022-02-26 10:37:58 +01:00
Terts Diepraam
53070141c1
all: add format_usage function ( #3139 )
...
This should correct the usage strings in both the `--help` and user documentation. Previously, sometimes the name of the utils did not show up correctly.
2022-02-21 17:14:03 +01:00
Sylvestre Ledru
6bf575ad56
Merge branch 'main' into cp-lb
2022-02-20 10:31:13 +01:00
Narasimha Prasanna HN
0379fca260
Fix merge conflict in tests/by-util/test_cp.rs
2022-02-07 23:26:06 +05:30
Eli Youngs
d50c9c3e77
Fail when copying a directory to a file
2022-02-02 23:59:32 -08:00
Eli Youngs
45751e9e48
cp: Create backup before hardlink
2022-02-01 23:49:39 -08:00
Narasimha Prasanna HN
be6287e3e3
Fix: Avoid infinite recursive copies when source and destination directories are same or source is a prefix of destination
2022-02-02 11:17:53 +05:30
Narasimha Prasanna HN
1194a8ce53
Fix: Update quick-error crate version from 1.2.3 to 2.0.1 in src/uu/cp ( #2947 )
...
fix: update quick-error crate from 1.2.3 to 2.0.1 for src/uu/cp tool, fixes: #2941
2022-01-31 21:56:47 +01:00
Daniel Eades
ba45fe312a
use 'Self' and derive 'Default' where possible
2022-01-30 15:08:26 +01:00
Daniel Eades
2f85610cc3
remove explicit iter loops
2022-01-30 15:08:26 +01:00
Daniel Eades
784f2e2ea1
use semicolons if nothing returned
2022-01-30 15:08:26 +01:00
Daniel Eades
a2d5f06be4
remove needless pass by value
2022-01-30 15:08:26 +01:00
Eli Youngs
680e9081fe
Don't panic when calling cp -a with a nonexistent file
2022-01-29 22:59:53 -08:00
Terts Diepraam
eb82015b23
all: change macros
...
- Change the main! proc_macro to a bin! macro_rules macro.
- Reexport uucore_procs from uucore
- Make utils to not import uucore_procs directly
- Remove the `syn` dependency and don't parse proc_macro input (hopefully for faster compile times)
2022-01-29 15:26:32 +01:00
Sylvestre Ledru
cbc7da3d7d
Merge pull request #2936 from tertsdiepraam/clap-infer-long-args
...
all: enable infer long arguments in clap
2022-01-29 09:57:15 +01:00
Terts Diepraam
9c8e865b55
all: enable infer long arguments in clap
2022-01-29 02:06:29 +01:00
Sylvestre Ledru
96584027e5
selinux: add consistency in the dep declaration
2022-01-29 01:31:17 +01:00
Terts Diepraam
55a47f6fc0
Merge pull request #2863 from tertsdiepraam/clap-3
...
Clap 3
2022-01-20 23:14:52 +01:00
Roy Ivy III
2e251f91f1
0.0.12
2022-01-19 05:35:00 -06:00
Terts Diepraam
8872485922
Merge branch 'main' into clap-3
2022-01-17 13:25:51 +01:00
Sylvestre Ledru
1fbda8003c
coreutils 0.0.8 => 0.0.9, uucore_procs 0.0.7 => 0.0.8, uucore 0.0.10 => 0.0.11
2022-01-16 17:05:48 +01:00
Terts Diepraam
37ab05bd7a
cp: clap 3
2022-01-11 19:16:47 +01:00
Terts Diepraam
f60c36f242
Merge pull request #2610 from miDeb/cp/abuse
...
cp: handle edge cases when dest is a symlink
2022-01-11 00:34:55 +01:00
electricboogie
a1960f5da0
Fix cp bug: pre-write permission change ( #2769 )
2021-12-15 22:18:02 +01:00
Roy Ivy III
f20aa49821
maint/CICD ~ (GHA) fix cargo-udeps
false positives (add 'ignore' exceptions to sub-crates)
2021-11-19 17:55:02 -06:00
Michael Debertol
3fdff304db
cp: handle edge cases when dest is a symlink
...
- Fail if dest is a dangling symlink
- Fail if dest is a symlink that was previously created by the same
invocation of cp
2021-11-01 22:48:48 +01:00
Sylvestre Ledru
6946377e02
cp: Also import entries from uucore
2021-10-24 00:29:24 +02:00
Sylvestre Ledru
59e9870c56
Prepare version 0.0.8
2021-10-23 19:21:50 +02:00
vulppine
4319248bb6
cp: Changes '1' to 'EXIT_ERR' in UError impl
2021-10-01 16:45:19 -07:00
vulppine
c64f09dc59
cp: Adds a needed macro, changes a return
2021-10-01 15:18:05 -07:00
vulppine
4ff5fea502
cp: uumain returns UResult, UError for Error
2021-10-01 14:58:26 -07:00
Sylvestre Ledru
7eaae75bfc
add a github action job to identify unused deps
2021-09-15 12:06:50 +02:00
Jan Verbeek
259f18fcab
Update message quoting and filename printing
2021-09-07 19:49:01 +02:00
Michael Debertol
ef9c5d4fcf
cp: canonicalize paths upfront
...
This way later code can assume `src` and `dest` to be the actual paths
of source and destination, and do not have to constantly check
`options.dereference`.
This requires moving the error context calculation to the beginning as
well, since later steps no longer operate with the same file paths as
supplied by the user.
2021-09-01 00:16:22 +02:00
Michael Debertol
8b74562820
cp: correctly copy mode, ownership, acl and context
...
Fix a mix-up between ownership and mode. The latter (mode / file permissions)
can also be set on windows (which however only affects the read-only flag),
while there doesn't seem to be a straight-forward way to change file ownership
on windows.
Copy the acl as well when copying the mode. This is a non-default feature and can be
enabled with --features feat_acl, because it doesn't seem to work on CI.
It is only available for unix so far.
Copy the SELinux context if possible.
2021-09-01 00:16:22 +02:00
Andreas Hartmann
f2311f87f4
cp: Adapt to modified backup_control
interface
2021-08-25 16:33:50 +02:00
Sylvestre Ledru
114c9a409c
Merge pull request #2471 from miDeb/real-exe-name
...
make executable!() return the real executable name
2021-08-22 16:55:06 +02:00
Sylvestre Ledru
8337aeb4d6
bump a few crates to simplify Debian packaging
2021-08-21 23:34:45 +02:00
Michael Debertol
5e07d58a4d
Merge pull request #2459 from jaggededgedjustice/realpath-add-physical-mode
...
Add Physical mode to realpath
2021-08-21 02:01:10 +02:00
Michael Debertol
252220e9eb
refactor/uucore ~ make util_name and execution_phrase functions
...
Since util_name and execution_phrase no longer rely on features that are
only available to macros, they may as well be plain functions.
2021-08-14 17:55:18 +02:00
Michael Debertol
5f2335829a
refactor ~ revert to single quotes for "Try '{0 --help'"
...
This is a test expectation for gnu.
2021-08-14 17:22:09 +02:00
Roy Ivy III
c0854000d1
refactor ~ use execution_phrase!()
for usage messaging
2021-08-14 14:01:33 +02:00
Roy Ivy III
23b68d80ba
refactor ~ usage()
instead of get_usage()
2021-08-14 13:58:43 +02:00
Roy Ivy III
894d9a068c
refactor ~ standardize on 'Try {} --help
...' messaging (common markdown-type formatting)
2021-08-14 13:55:11 +02:00
Roy Ivy III
c5792c2a0f
refactor ~ use util_name!()
as clap::app::App name argument for all utils
2021-08-14 13:53:13 +02:00
James Robson
0e04f959c2
Add Physical mode to realpath
...
This adds the 'Physical Mode' and 'Logical Mode' switches to realpath, which control when symlinks are resolved.
2021-08-01 17:06:09 +01:00
sagudev
4f4338f1c0
Delete all allow(nonstandard_macro_braces) and fix other clippy warnings
2021-07-25 18:51:16 +02:00
Terts Diepraam
eae8c72793
Merge pull request #2467 from Funky185540/backup_mode_determination
...
backup_control: Fix backup mode determination
2021-07-20 13:27:04 +02:00
Andreas Hartmann
3a0164310a
cp: Adapt to modified backup mode determination
2021-07-19 17:01:49 +02:00
Sylvestre Ledru
26a882551b
update the dep to uucore_procs 0.0.6
2021-07-11 21:04:11 +02:00
Sylvestre Ledru
1d8a66b7d3
Update to version 0.0.7
2021-07-11 18:04:56 +02:00
Michael Debertol
2ebca384c6
all utils: enable wrap_help
...
This makes clap wrap the help text according to the terminal width,
which improves readability for terminal widths < 120 chars,
because clap defaults to a width of 120 chars without this feature.
2021-06-27 16:17:10 +02:00
Michael Debertol
73cfcc27e7
cp: insert some spaces into the help text
2021-06-25 21:23:45 +02:00
Michael Debertol
0531153fa6
uutils: move clap::App creation to separate functions
2021-06-25 21:23:45 +02:00
Sylvestre Ledru
a73e71ba74
Merge pull request #2437 from miDeb/cp/reflink-auto
...
cp: default to --reflink=auto on linux and macos
2021-06-23 12:37:44 +02:00
Jan Scheer
c0be979611
fix some issues with locale (replace "LANGUAGE" with "LC_ALL")
...
`LANGUAGE=C` is not enough, `LC_ALL=C` is needed as the environment
variable that overrides all the other localization settings.
e.g.
```bash
$ LANGUAGE=C id foobar
id: ‘foobar’: no such user
$ LC_ALL=C id foobar
id: 'foobar': no such user
```
* replace `LANGUAGE` with `LC_ALL` as environment variable in the tests
* fix the the date string of affected uutils
* replace `‘` and `’` with `'`
2021-06-23 11:30:28 +02:00
Michael Debertol
a91369bbff
cp: fix dead code warnings on windows
2021-06-20 19:10:51 +02:00
Michael Debertol
076c7fa501
cp: default to --reflink=auto on linux and macos
2021-06-19 18:59:57 +02:00
Michael Debertol
9fb927aa85
cp: always delete the destination for symlinks
2021-06-19 18:59:57 +02:00
Michael Debertol
6400cded54
cp: fix order of checks in copy_helper
2021-06-19 18:59:57 +02:00
Terts Diepraam
14520fb64e
cp: remove redundant newline in readme
2021-06-18 18:00:27 +02:00
Terts Diepraam
fdfa44cb5c
Merge branch 'master' into cp/update-options
2021-06-18 17:59:13 +02:00
Terts Diepraam
ab3f2cb672
cp: update list of implemented arguments
2021-06-18 17:56:22 +02:00
Terts Diepraam
cf1a7d0796
cp: use options module
2021-06-18 17:56:04 +02:00
Michael Debertol
a371c03431
cp: only get the current directory once
2021-06-18 11:48:13 +02:00
Michael Debertol
32526e3048
cp: one more clippy fix
2021-06-18 11:45:04 +02:00
Michael Debertol
315bfd65a3
cp: move symlink check to the right place
2021-06-18 11:44:39 +02:00
Michael Debertol
12a1c87cb8
cp: improve symlink handling
2021-06-17 22:26:13 +02:00
Hanif Bin Ariffin
2a7209116d
Fixed cp --preserve accepting no args
...
Signed-off-by: Hanif Bin Ariffin <hanif.ariffin.4326@gmail.com>
2021-06-16 11:26:52 +08:00
Jeong YunWon
7cc17c15c2
cp: clean up returning Err
2021-06-11 23:26:58 +09:00
Roy Ivy III
423f4f9bf1
fix/cp ~ correct cargo clippy
complaint exception (*allow* clippy::unnecessary_wraps)
2021-06-06 19:28:25 -05:00
Sylvestre Ledru
841b689477
Merge pull request #2334 from sylvestre/crate_version
...
use crate_version!() instead of reading the env + rustfmt
2021-06-03 10:56:57 +02:00
Sylvestre Ledru
d8c06dd6bb
use clap::crate_version macro instead of the env variable
2021-06-02 19:00:19 +02:00
Michael Debertol
dfaaa8c787
Merge branch 'master' of https://github.com/uutils/coreutils into cp/close-fd
2021-06-02 11:37:37 +02:00
Michael Debertol
a323e9cda1
cp: show errors in cow on linux
2021-06-01 23:06:38 +02:00
Michael Debertol
23f89d1494
cp: close file descriptors after cow on linux
...
Instead of using into_raw_fd(), which transfers ownership and
requires us to close the file descriptor manually,
use as_raw_fd(), which does not transfer ownership to us but drops the
file descriptor when the original file is dropped (in our case at the
end of the function).
2021-06-01 22:04:19 +02:00
Roy Ivy III
1b1086146b
refactor/cp ~ polish spelling (comments, names, and exceptions)
2021-05-31 08:11:32 -05:00
Roy Ivy III
9c0c8eb59f
change ~ remove 'main.rs' spell-checker exceptions
2021-05-31 08:11:31 -05:00
Jan Scheer
3aeccfd802
fix a lot of clippy warnings
2021-05-29 15:11:22 +02:00
Jan Scheer
a2947f6897
fix clippy warning
2021-05-29 00:46:25 +02:00
Matt Blessed
41bea72f23
cp: fix regressed issue with --backup
and -b
...
- add test for regressed issue
2021-05-26 18:29:03 -04:00
Matt Blessed
25ed5eeb0e
cp: move option check to uumain and use show_usage_error
...
- add test for conflicting options `--backup` and `--no-clobber`
2021-05-26 11:10:04 -04:00
Matt Blessed
a8a1ec7faf
cp: implement backup control with tests
2021-05-25 23:22:32 -04:00
Sylvestre Ledru
108f9928ef
cp: fix 'variable does not need to be mutable'
2021-05-02 09:39:09 +02:00
Nicolas Thery
4bf33e98a8
cp: add --reflink support for macOS
...
Fixes #1773
2021-04-24 19:26:15 +02:00
Nicolas Thery
b8e23c20c2
cp: extract linux COW logic into function
2021-04-24 19:22:12 +02:00
Nicolas Thery
f36832c392
cp: add support for --reflink=never
...
- Passing `never` to `--reflink` does not raise an error anymore.
- Remove `Options::reflink` flag as it was redundant with
`reflink_mode`.
- Add basic tests for this option. Does not check that a copy-on-write
rather than a regular copy was made.
2021-04-18 18:51:59 +02:00
Reto Hablützel
75a76613e4
fix clippy in cp
2021-04-11 16:09:18 +02:00
Reto Hablützel
97d12d6e3c
fix trivial warnings without features
2021-04-11 16:05:25 +02:00
Sylvestre Ledru
f37284129e
new release 0.0.6 to address the cat issue
2021-04-03 16:06:58 +02:00
Sylvestre Ledru
ac031dffa4
new release 0.0.5
2021-04-03 10:30:07 +02:00
Mekka
99da9ea6ec
Cleanup: Fix grammar in "cp" macro comments. ( #1905 )
...
Replaced "they if" with "if they" in the comments above the "prompt_yes" macro.
2021-03-25 10:36:48 +01:00