Indicate copy/move op correctly in progress msg

This commit is contained in:
Arun Prakash Jana
2020-10-25 12:42:59 +05:30
parent b955f0eb67
commit d336dd4cbe

View File

@@ -1,6 +1,6 @@
diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
--- coreutils-8.32/src/copy.c 2020-01-01 15:13:12.000000000 +0100 --- coreutils-8.32/src/copy.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/copy.c 2020-05-23 13:25:09.286684100 +0200 +++ coreutils-8.32-patched/src/copy.c 2020-10-25 12:28:07.178008701 +0530
@@ -129,6 +129,72 @@ @@ -129,6 +129,72 @@
dev_t dev; dev_t dev;
}; };
@@ -74,8 +74,12 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
/* Initial size of the cp.dest_info hash table. */ /* Initial size of the cp.dest_info hash table. */
#define DEST_INFO_INITIAL_CAPACITY 61 #define DEST_INFO_INITIAL_CAPACITY 61
@@ -261,7 +327,8 @@ @@ -258,10 +324,11 @@
size_t hole_size, bool punch_holes, bytes read. */
static bool
sparse_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
- size_t hole_size, bool punch_holes,
+ size_t hole_size, bool punch_holes, bool move_mode,
char const *src_name, char const *dst_name, char const *src_name, char const *dst_name,
uintmax_t max_n_read, off_t *total_n_read, uintmax_t max_n_read, off_t *total_n_read,
- bool *last_write_made_hole) - bool *last_write_made_hole)
@@ -84,7 +88,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
{ {
*last_write_made_hole = false; *last_write_made_hole = false;
*total_n_read = 0; *total_n_read = 0;
@@ -270,6 +337,83 @@ @@ -270,6 +337,85 @@
while (max_n_read) while (max_n_read)
{ {
@@ -125,7 +129,9 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
+ min_remaining -= hours_remaining * 60; + min_remaining -= hours_remaining * 60;
+ /* print out */ + /* print out */
+ sprintf ( s_progress->cProgressField[3], + sprintf ( s_progress->cProgressField[3],
+ "Copying at %s/s (about %uh %um %us remaining)", s_copy_speed, + move_mode
+ ? "Moving at %s/s (about %uh %um %us remaining)"
+ : "Copying at %s/s (about %uh %um %us remaining)", s_copy_speed,
+ hours_remaining, min_remaining, sec_remaining ); + hours_remaining, min_remaining, sec_remaining );
+ +
+ int fs_len; + int fs_len;
@@ -168,7 +174,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
ssize_t n_read = read (src_fd, buf, MIN (max_n_read, buf_size)); ssize_t n_read = read (src_fd, buf, MIN (max_n_read, buf_size));
if (n_read < 0) if (n_read < 0)
{ {
@@ -354,6 +498,14 @@ @@ -354,6 +500,14 @@
certain files in /proc or /sys with linux kernels. */ certain files in /proc or /sys with linux kernels. */
} }
@@ -183,9 +189,12 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
/* Ensure a trailing hole is created, so that subsequent /* Ensure a trailing hole is created, so that subsequent
calls of sparse_copy() start at the correct offset. */ calls of sparse_copy() start at the correct offset. */
if (make_hole && ! create_hole (dest_fd, dst_name, punch_holes, psize)) if (make_hole && ! create_hole (dest_fd, dst_name, punch_holes, psize))
@@ -422,7 +574,9 @@ @@ -420,9 +574,11 @@
static bool
extent_copy (int src_fd, int dest_fd, char *buf, size_t buf_size,
size_t hole_size, off_t src_total_size, size_t hole_size, off_t src_total_size,
enum Sparse_type sparse_mode, - enum Sparse_type sparse_mode,
+ enum Sparse_type sparse_mode, bool move_mode,
char const *src_name, char const *dst_name, char const *src_name, char const *dst_name,
- bool *require_normal_copy) - bool *require_normal_copy)
+ bool *require_normal_copy, + bool *require_normal_copy,
@@ -194,7 +203,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
{ {
struct extent_scan scan; struct extent_scan scan;
off_t last_ext_start = 0; off_t last_ext_start = 0;
@@ -553,10 +707,16 @@ @@ -553,10 +709,16 @@
last_ext_len = ext_len; last_ext_len = ext_len;
bool read_hole; bool read_hole;
@@ -206,13 +215,14 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
+ +
if ( ! sparse_copy (src_fd, dest_fd, buf, buf_size, if ( ! sparse_copy (src_fd, dest_fd, buf, buf_size,
sparse_mode == SPARSE_ALWAYS ? hole_size: 0, sparse_mode == SPARSE_ALWAYS ? hole_size: 0,
true, src_name, dst_name, ext_len, &n_read, - true, src_name, dst_name, ext_len, &n_read,
- &read_hole)) - &read_hole))
+ &read_hole,&s_progress)) + true, move_mode, src_name, dst_name, ext_len,
+ &n_read, &read_hole,&s_progress))
goto fail; goto fail;
dest_pos = ext_start + n_read; dest_pos = ext_start + n_read;
@@ -1305,6 +1465,70 @@ @@ -1305,6 +1467,70 @@
buf_alloc = xmalloc (buf_size + buf_alignment); buf_alloc = xmalloc (buf_size + buf_alignment);
buf = ptr_align (buf_alloc, buf_alignment); buf = ptr_align (buf_alloc, buf_alignment);
@@ -283,32 +293,34 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
if (sparse_src) if (sparse_src)
{ {
bool normal_copy_required; bool normal_copy_required;
@@ -1316,7 +1540,9 @@ @@ -1316,7 +1542,9 @@
if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size, if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size,
src_open_sb.st_size, src_open_sb.st_size,
make_holes ? x->sparse_mode : SPARSE_NEVER, make_holes ? x->sparse_mode : SPARSE_NEVER,
- src_name, dst_name, &normal_copy_required)) - src_name, dst_name, &normal_copy_required))
+ src_name, dst_name, &normal_copy_required, + x->move_mode, src_name, dst_name, &normal_copy_required,
+ iCountDown, cProgressField, last_time, last_size, + iCountDown, cProgressField, last_time, last_size,
+ iBarLength, src_open_sb)) + iBarLength, src_open_sb))
goto preserve_metadata; goto preserve_metadata;
if (! normal_copy_required) if (! normal_copy_required)
@@ -1328,11 +1554,12 @@ @@ -1328,11 +1556,12 @@
off_t n_read; off_t n_read;
bool wrote_hole_at_eof; bool wrote_hole_at_eof;
+ struct progress_status s_progress = { iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb}; + struct progress_status s_progress = { iCountDown, cProgressField, last_time, last_size, iBarLength, src_open_sb};
if (! sparse_copy (source_desc, dest_desc, buf, buf_size, if (! sparse_copy (source_desc, dest_desc, buf, buf_size,
make_holes ? hole_size : 0, make_holes ? hole_size : 0,
x->sparse_mode == SPARSE_ALWAYS, src_name, dst_name, - x->sparse_mode == SPARSE_ALWAYS, src_name, dst_name,
UINTMAX_MAX, &n_read, - UINTMAX_MAX, &n_read,
- &wrote_hole_at_eof)) - &wrote_hole_at_eof))
+ x->sparse_mode == SPARSE_ALWAYS, x->move_mode,
+ src_name, dst_name, UINTMAX_MAX, &n_read,
+ &wrote_hole_at_eof, &s_progress)) + &wrote_hole_at_eof, &s_progress))
{ {
return_val = false; return_val = false;
goto close_src_and_dst_desc; goto close_src_and_dst_desc;
@@ -1343,6 +1570,14 @@ @@ -1343,6 +1572,14 @@
return_val = false; return_val = false;
goto close_src_and_dst_desc; goto close_src_and_dst_desc;
} }
@@ -323,10 +335,9 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
} }
preserve_metadata: preserve_metadata:
Only in coreutils-8.32-patched/src: copy.c.orig
diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
--- coreutils-8.32/src/copy.h 2020-01-01 15:13:12.000000000 +0100 --- coreutils-8.32/src/copy.h 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/copy.h 2020-05-23 13:25:09.286684100 +0200 +++ coreutils-8.32-patched/src/copy.h 2020-10-25 12:19:01.488366069 +0530
@@ -234,6 +234,9 @@ @@ -234,6 +234,9 @@
Create destination directories as usual. */ Create destination directories as usual. */
bool symbolic_link; bool symbolic_link;
@@ -353,10 +364,9 @@ diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
+/* END OF PROGRESS MOD */ +/* END OF PROGRESS MOD */
+ +
#endif #endif
Only in coreutils-8.32-patched/src: copy.h.orig
diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
--- coreutils-8.32/src/cp.c 2020-01-01 15:13:12.000000000 +0100 --- coreutils-8.32/src/cp.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/cp.c 2020-05-23 13:25:09.286684100 +0200 +++ coreutils-8.32-patched/src/cp.c 2020-10-25 12:19:01.488366069 +0530
@@ -131,6 +131,7 @@ @@ -131,6 +131,7 @@
{"symbolic-link", no_argument, NULL, 's'}, {"symbolic-link", no_argument, NULL, 's'},
{"target-directory", required_argument, NULL, 't'}, {"target-directory", required_argument, NULL, 't'},
@@ -520,8 +530,8 @@ diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
x.dereference = DEREF_COMMAND_LINE_ARGUMENTS; x.dereference = DEREF_COMMAND_LINE_ARGUMENTS;
break; break;
diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c
--- coreutils-8.32/src/mv.c 2020-01-01 15:13:12.000000000 +0100 --- coreutils-8.32/src/mv.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/mv.c 2020-05-23 13:25:09.286684100 +0200 +++ coreutils-8.32-patched/src/mv.c 2020-10-25 12:19:01.488366069 +0530
@@ -66,6 +66,7 @@ @@ -66,6 +66,7 @@
{"target-directory", required_argument, NULL, 't'}, {"target-directory", required_argument, NULL, 't'},
{"update", no_argument, NULL, 'u'}, {"update", no_argument, NULL, 'u'},