You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First of all, thank you so much for the program! I used to do this cleaning with tedious, slow, and imperfect multiline shell commands. This is my first time using a program like czkawka. I never tried fslint and would like to leave that job for a compiled and highly performant program like czkawka.
I have some suggestions to improve the CLI command:
Add an option to separate output by a null character: similiar to how fd and find have a --print0 / -0. That way any output, even directories and files with spaces in their names, could be piped into xargs -0, to be used inside a larger script.
infer -i from current directory if not present: If I run czkawka empty-files from ~/some/directory, I get the error FATAL ERROR: Parameter -i with set of included files is required. It would be much better if it could just run as if -i ~/some/directory and issue a warning that it is running from there. I could live without -i at all if I had that and cd.
Use long and short subcommands instead of single-letter arguments with two dashes: i.e.
This seems more natural to me. I rarely see CLI programs that use the current argument style of czkawka. That will also make it hard to write shell completions since, most shell expect a behaviour similar to GNU coreutils. Of course, I don't know Rust so I can't tell how hard that would be or whether the current CLI was made like that for a certain reason.
output of big subcommand is perfect but, it cannot be used inside larger commands because of the prefix ???.?? MiB (?????? bytes) - *
maybe you could add --short / -S options (or even better: --output / -O <quiet|minimal|verbose|debug> ). In that case I could, for example, find the largest videos with czkawka big and pipe it to ffmpeg for compression. for now my easiest solution would be to use awk or sed in the middle:
# Does not work
~ $ czkawka big -i $HOME -x 'mp4' | xargs ffmpeg {ffmpeg options}
#Works
~ $ czkawka big -i $HOME -x 'mp4' | awk '{$1="";$2="";$3="";$4="";$5=""; print $0}' | xargs ffmpeg {ffmpeg options}
# Proposed solution, works with spaced filenames too.
~ $ czkawka big -x 'mp4' -S -0 | xargs -0 ffmpeg {ffmpeg options}
Help is not too helpful: maybe with separate subcommand for each task you could add help to indvidual subcmds in a GNU-generic formatAs of now, the help message dumps everything czkawka could do with very long lines for every subcommand.and there is no man page.It took my a while longer to read compared to other help messages.
App I created mainly for my own usage and it is my first bigger project, so probably a lot of things will not be as they imagine after other software(of course this can be changed if the usefulness of the program will increase)
CLI thanks to MeirKlemp was rewritten with help of StructOpt, so it looks better and have per command help messages, so it should look more similar to Linux commands.
First of all, thank you so much for the program! I used to do this cleaning with tedious, slow, and imperfect multiline shell commands. This is my first time using a program like czkawka. I never tried
fslint
and would like to leave that job for a compiled and highly performant program like czkawka.I have some suggestions to improve the CLI command:
Add an option to separate output by a null character: similiar to how
fd
andfind
have a--print0 / -0
. That way any output, even directories and files with spaces in their names, could be piped intoxargs -0
, to be used inside a larger script.infer
-i
from current directory if not present: If I runczkawka empty-files
from~/some/directory
, I get the errorFATAL ERROR: Parameter -i with set of included files is required
. It would be much better if it could just run as if-i ~/some/directory
and issue a warning that it is running from there. I could live without-i
at all if I had that andcd
.Use long and short subcommands
instead of single-letter arguments with two dashes: i.e.This seems more natural to me. I rarely see CLI programs that use the current argument style of czkawka. That will also make it hard to write shell completions since, most shell expect a behaviour similar to GNU coreutils. Of course, I don't know Rust so I can't tell how hard that would be or whether the current CLI was made like that for a certain reason.output of
big
subcommand is perfect but, it cannot be used inside larger commands because of the prefix???.?? MiB (?????? bytes) - *
maybe you could add
--short / -S
options (or even better:--output / -O <quiet|minimal|verbose|debug>
). In that case I could, for example, find the largest videos withczkawka big
and pipe it toffmpeg
for compression. for now my easiest solution would be to use awk or sed in the middle:Help is not too helpful: maybe with separate subcommand for each task you could add help to indvidual subcmds in a GNU-generic formatAs of now, the help message dumps everything czkawka could do with very long lines for every subcommand.and there is no man page.It took my a while longer to read compared to other help messages.czkawka is not safe against .git folders. i.e.
The text was updated successfully, but these errors were encountered: