Vinícius Rodrigues Miguel
b093277a85
Refactor FinalError::display_and_crash
into Error::Custom
2021-10-06 16:23:19 -03:00
Vinícius Rodrigues Miguel
40410840c9
error: add MissingArgumentsForDecompression
2021-10-06 15:55:13 -03:00
Vinícius Rodrigues Miguel
990458b771
Release 0.2.0
2021-10-06 15:39:55 -03:00
Vinícius Miguel
a8beaaae84
Merge pull request #65 from ouch-org/buffers-capacity-improvement
...
Increasing read and writer buffers capacity
2021-10-06 01:07:28 -03:00
João M. Bezerra
5b54bf85ee
Increasing read and writer buffers capacity
...
By changing from 8KB to 64KB we will be making 8 times less syscalls
2021-10-06 00:56:39 -03:00
Vinícius Rodrigues Miguel
e9bc65a787
Add support for Zstd
2021-10-05 23:56:09 -03:00
João M. Bezerra
3f718b8335
Simplify tests by making gen_args more generic
2021-10-05 22:21:11 -03:00
João Marcos Bezerra
4ddc21a551
Merge pull request #61 from GabrielSimonetto/issue-48
...
Make the "decompress" command explicit
2021-10-05 22:10:27 -03:00
Gabriel Simonetto
788809b8f3
Make decompress command explicit
...
- No subcommand given now calls the help menu
- Also added docs for the short version of compress and decompress
2021-10-05 22:06:18 -03:00
Vinícius Rodrigues Miguel
e7dd6f2d4f
Don't use colors when stdout
or stderr
are being redirected
2021-10-05 21:12:15 -03:00
João M. Bezerra
f7139548f6
Switch from BTree to Hash collections
2021-10-05 18:10:28 -03:00
João M. Bezerra
2f5083278f
Add libc dependency
...
Cross compatible (with windows) exit failure code
2021-10-03 00:20:12 -03:00
João M. Bezerra
89d1e6a752
Document modules
2021-10-03 00:17:57 -03:00
Gabriel Simonetto
e352f8bc93
Allow empty dirs on tar
2021-10-02 17:33:16 -03:00
Gabriel Simonetto
0c65fbd2d4
Allow empty dirs on zip
2021-10-02 17:14:16 -03:00
Vinícius Rodrigues Miguel
df062f4155
zip: optimize UTF-8 checks on Unix, remove unneeded Clone
2021-10-01 19:13:43 -03:00
Vinícius Rodrigues Miguel
17d8959a0f
unix: if setting permission fails, return an error instead of panicking
2021-10-01 12:00:52 -03:00
Vinícius Rodrigues Miguel
8fc2f06ef7
error: remove unused error variants
2021-10-01 11:46:20 -03:00
Vinícius Rodrigues Miguel
6085807ddf
cd_into_same_dir_as
: allow the proper IO error to bubble up and add docs
2021-09-17 11:54:55 -03:00
Vinícius Rodrigues Miguel
8565e475c3
Rework FinalError::display
into a FinalError::Display
impl
2021-09-17 11:49:46 -03:00
Vinícius Rodrigues Miguel
130288beb4
dialogs: use Cow<str>
to avoid cloning a String
2021-09-17 09:33:19 -03:00
Vinícius Rodrigues Miguel
a0f43b62f7
Release 0.1.6
2021-09-17 00:55:58 -03:00
Vinícius Rodrigues Miguel
b099e4ac20
Respect the NO_COLOR
env. arg.
2021-09-17 00:55:38 -03:00
Vinícius Rodrigues Miguel
55aa65dcea
Reduced repetition caused by [INFO]
printing
2021-09-17 00:22:41 -03:00
Vinícius Rodrigues Miguel
c4a4792816
Misc cleanup
2021-09-16 23:14:00 -03:00
Vinícius Rodrigues Miguel
eabaac0145
Run rustfmt
2021-09-16 21:35:18 -03:00
João M. Bezerra
c9d4eea403
Minor renaming
2021-08-13 02:14:28 -03:00
João M. Bezerra
8f7f812e87
Removing unused macros
2021-08-04 12:41:32 -03:00
João M. Bezerra
33382d06c3
Adding more checks before compression
2021-08-04 12:05:41 -03:00
João M. Bezerra
bb93e46535
Reworked compression
...
Now works with multiple formats, like
archive.zip.gz.lz.gz.gz2.xz
Now with minimum in-memory copying, compressing and decompressing (with
exception to .zip, due to the format limitations) is all done directly
into the final destination file.
2021-08-03 21:18:22 -03:00
João M. Bezerra
b969bda5a8
Added check for missing formats when decompressing
2021-08-03 19:12:22 -03:00
João M. Bezerra
ac4948abf7
Decompression: multiple formats, no extra copying
...
Rewrote decompression to use chained decoders, creating a stream and
avoiding in-memory decompression, which caused redundant copying.
Now ouch supports any number of extensions as decompressing formats, not
only two.
2021-08-03 16:58:21 -03:00
Vinícius Rodrigues Miguel
a9673a3eba
Reuse Confirmation struct when checking for overwrite permission
2021-07-25 01:23:58 -03:00
Fabricio Dematte
dd6718bd3b
chore: remove comments
2021-06-10 13:01:45 -03:00
João M. Bezerra
8eb973d470
Fixing --output flag missing in tests
2021-06-02 03:31:30 -03:00
Fabricio Dematte
38c88c1df2
more ouch cli testing
2021-05-31 08:22:10 -03:00
Fabricio Dematte
09e9036301
attempt to assert
2021-05-31 08:00:03 -03:00
João M. Bezerra
51a88bebba
Adding FinalError, using in crate::Error Display
...
Helps us add nice and consistently formatted error messages
2021-05-28 16:53:18 -03:00
João M. Bezerra
8707328944
Temporarly disabling platform-dependent test
2021-05-28 05:14:51 -03:00
João M. Bezerra
bf8ef70d16
Fixing Oof and Walkdir Error Display
2021-05-28 04:34:06 -03:00
João M. Bezerra
d1734b54cb
Eliding some lifetimes
2021-05-28 03:14:03 -03:00
João M. Bezerra
f51a5c8727
Moving cli input .canonicalize to help testing
...
We are moving canonicalize_files step
from parse_args_from
to parse_args
This helps testing our CLI without panicking when files don't exist
2021-05-28 03:07:25 -03:00
João M. Bezerra
cd43f215ea
Replace io::Error by reason: String - crate::Error
...
By removing io::Error from crate::Error, we can implement PartialEq in
the enum to make testing easier.
2021-05-28 02:15:12 -03:00
João M. Bezerra
57a3d231eb
Turning oof
subcrate into a module
2021-05-26 21:54:50 -03:00
João M. Bezerra
f203b80eb8
Fixing ouch OofError convertion
2021-05-19 12:28:49 -03:00
João M. Bezerra
d01947d9e1
Adding rustfmt.toml and reformatting
2021-05-16 17:52:29 -03:00
João M. Bezerra
3dc9a78539
Removing src/test.rs
2021-05-15 01:15:19 -03:00
João M. Bezerra
de28e573d8
Fix error message typo
2021-05-15 01:14:22 -03:00
João M. Bezerra
864fc1a29b
decompression: panic if there are no arguments
2021-05-15 01:12:03 -03:00
Vinícius Miguel
2ba91644e8
commands: remove two unnecessary clones
2021-04-09 12:05:49 -03:00
Vinícius Miguel
3cb0bfa1e5
cli: refactor path canonicalizing logic
2021-04-09 02:05:31 -03:00
Vinícius Miguel
38e7009a27
cli: add an alias for the compress subcommand
2021-04-08 22:46:47 -03:00
Vinícius Miguel
b614533fd5
utils: fix usage of the -n, --no flag
2021-04-08 22:31:10 -03:00
Vinícius Miguel
c94b49f013
cli: Only suggest the typo correction and exit
2021-04-08 12:48:52 -03:00
Vinícius Miguel
5ca99c101e
oof: remove unnecessary closures (((and undo last commit)))
2021-04-08 03:03:07 -03:00
Vinícius Miguel
e7eb55a4cf
test: make_dummy_files: return an error instead of panicking
2021-04-08 02:55:34 -03:00
Vinícius Miguel
2f6ac5e54c
error: Save std::io::Error as a crate::Error variant
2021-04-08 00:26:02 -03:00
Vinícius Miguel
faae7c088f
oof: add error variant MissingValueToFlag
2021-04-07 23:28:37 -03:00
Vinícius Miguel
d9b39706e2
Drop dependency on Termion
2021-04-07 02:23:50 -03:00
Vinícius Miguel
0026e4d4de
Drop dependency on Colored
2021-04-07 02:02:50 -03:00
Vinícius Miguel
8a4ac5d6d1
cli: Check for typos on ouch compress
2021-04-07 00:26:53 -03:00
João M. Bezerra
e1c72a6a6b
Removing unused cli::CommandInfo
2021-04-06 23:36:44 -03:00
João M. Bezerra
3ac28b8d5c
Fixing Windows build warnings
2021-04-06 23:16:39 -03:00
João M. Bezerra
bb004dc78c
Fixing Windows build: no termion support
2021-04-06 23:12:40 -03:00
João M. Bezerra
df1bc879cb
New --help message
2021-04-06 22:52:41 -03:00
João M. Bezerra
973af5fe1c
Change evaluator.rs to commands.rs
2021-04-06 21:18:56 -03:00
João M. Bezerra
3869c2502e
Moving bytes.rs implementation to utils.rs
2021-04-06 21:16:33 -03:00
Vinícius Miguel
20bcf1ecde
evaluator: Fix an error message
2021-04-06 20:36:47 -03:00
João M. Bezerra
aa03d2723e
Separate lib from binary
...
Makes integration testing easier
2021-04-06 20:22:56 -03:00
João M. Bezerra
78d5f435ee
Minor style changes
2021-04-06 20:14:33 -03:00
João M. Bezerra
575abeb454
Testing bytes formatting
2021-04-06 20:12:51 -03:00
Vinícius Miguel
784217143a
Better error message for MissingArgumentsForDecompression
2021-04-06 19:05:36 -03:00
Vinícius Miguel
8c88d5cb0f
evaluator: Accept the other compression formats as 'first compressors'
2021-04-06 19:01:44 -03:00
Vinícius Miguel
249e9959fc
Fix failing test
2021-04-06 12:51:53 -03:00
Vinícius Miguel
5b70940596
Fix cargo test
2021-04-06 04:44:08 -03:00
Vinícius Miguel
f9272b5ce5
evaluator: Verify if input files are decompressible
2021-04-06 04:30:36 -03:00
Vinícius Miguel
9b8dcb40fa
cli: Canonicalize input files when decompressing
2021-04-06 04:12:00 -03:00
Vinícius Miguel
095ade6621
Code cleanup
2021-04-06 03:37:49 -03:00
Vinícius R. Miguel
42b139f1a5
Add tests for byte pretty-printing
2021-04-06 03:08:44 -03:00
Vinícius R. Miguel
1b9faab96a
refactor: pretty-print bytes
2021-04-06 02:49:03 -03:00
Vinícius R. Miguel
368a776b70
Add Bytes and impl Display for Bytes
2021-04-06 02:34:27 -03:00
Vinícius Rodrigues Miguel
1c5005f5a9
Adapt the Python test script to the new Ouch interface
2021-04-05 20:57:18 -03:00
Vinícius Rodrigues Miguel
011626f09b
(WIP) Minor misc. changes
2021-04-05 02:57:46 -03:00
Vinícius Rodrigues Miguel
d2af261f67
Fix cargo test
tests
2021-04-05 01:14:27 -03:00
João M. Bezerra
28901ec44e
Binary size decreased by 35% (-400KB)
...
Huge refactor, removed totally `clap` to use our argparsing instead.
500+ modified.
2021-04-04 23:26:57 -03:00
João M. Bezerra
b45f38f5fa
Add utils::to_utf
2021-04-04 23:18:25 -03:00
João M. Bezerra
0c9131c307
Start replacing clap
with oof
2021-04-04 23:13:03 -03:00
João M. Bezerra
5b37a117f1
Clippy lints
2021-04-04 01:58:22 -03:00
Vinícius Rodrigues Miguel
b002de78d9
Show better error messages
2021-03-30 00:11:46 -03:00
Vinícius Rodrigues Miguel
2dc828c0ff
(WIP) Showing better error messages
2021-03-29 23:11:22 -03:00
Vinícius R. Miguel
a96d26eba6
Bump to version 0.1.4
2021-03-29 02:58:16 -03:00
Vinícius R. Miguel
cb10a45661
Use the -y and -n flags when decompressing single-file compression formats
2021-03-29 02:44:29 -03:00
Vinícius Rodrigues Miguel
1c0e883d99
dialogs: Remove duplicated to_ascii_lowercase
2021-03-29 02:00:47 -03:00
Vinícius Rodrigues Miguel
5ac3540145
Use the -y and -n flags when compressing to a file that already exists
2021-03-29 01:52:52 -03:00
Vinícius Rodrigues Miguel
0f0b086943
Use the the -y and -n flags when decompressing .tar and .zip
2021-03-29 01:37:01 -03:00
Vinícius R. Miguel
c7cf1112b6
Add -y, --yes and -n, --no flags (currently unused)
2021-03-28 23:50:28 -03:00
Vinícius Rodrigues Miguel
40fb926d80
evaluator: Add confirmation dialog for file overwriting
2021-03-28 14:52:09 -03:00
Vinícius Rodrigues Miguel
03d6fc1e60
decompressors/tar: Add confirmation dialog for file overwriting
2021-03-28 14:28:07 -03:00
Vinícius Rodrigues Miguel
7954eb07fd
decompressors/zip: Add confirmation dialog for file overwriting
2021-03-28 13:56:00 -03:00
Vinícius Rodrigues Miguel
91f411439a
rustfmt
2021-03-27 01:34:43 -03:00
Vinícius Rodrigues Miguel
234e0406a1
Don't allow ouch
to compress the root folder
2021-03-27 00:37:47 -03:00
Vinícius Rodrigues Miguel
49e4c4afcd
compressors/zip: replace a couple of unwraps to the question mark op.
2021-03-26 23:47:42 -03:00
Vinícius Rodrigues Miguel
8e37078043
zip: ensure usage of relational paths during compression
2021-03-26 22:56:57 -03:00
Vinícius Rodrigues Miguel
19f12ff791
Ensure correct permissions for decompressed files from .zip on Unix
2021-03-26 22:39:23 -03:00
Vinícius Rodrigues Miguel
96a4e8bb78
Bump version to 0.1.3
2021-03-26 21:32:54 -03:00
João M. Bezerra
41a81b75a6
Simplyfying tests
2021-03-26 14:24:24 -03:00
Vinícius Rodrigues Miguel
36db7d721d
Fix tests
2021-03-26 14:11:13 -03:00
João M. Bezerra
dd9b6dd65f
Renaming tomemory.rs to to_memory.rs
2021-03-26 14:03:36 -03:00
João M. Bezerra
ce26246fd4
Changing the error imports
2021-03-26 14:03:06 -03:00
Vinícius Rodrigues Miguel
71be492cd4
Fix CLI tests
2021-03-25 23:33:27 -03:00
Vinícius Rodrigues Miguel
d99d8e71d3
Add a sad Python script for Ouch testing
2021-03-25 22:47:34 -03:00
Vinícius Rodrigues Miguel
ceb507fd14
main: Make ouch return 1 upon failure
2021-03-25 21:43:45 -03:00
João M. Bezerra
755cc2a40d
Refactoring and Clippy warnings
2021-03-25 20:50:42 -03:00
Vinícius Rodrigues Miguel
965041310c
Make ouch support paths with dot-dot (..) for input files/directories
2021-03-25 03:20:20 -03:00
Vinícius Rodrigues Miguel
9ea18659e5
Update README, slightly reduce code repetition
2021-03-24 18:35:01 -03:00
Vinícius Rodrigues Miguel
6eee06a51a
Bump app version
2021-03-24 17:51:59 -03:00
Vinícius Rodrigues Miguel
0b346eee3d
Fixes Gzip and Lzma compression
2021-03-24 17:40:38 -03:00
Vinícius Rodrigues Miguel
f3dd4d9804
Progress in Lzma compression
2021-03-24 17:21:00 -03:00
Vinícius Rodrigues Miguel
3fa939ac90
Add support for Gzip compression (includes .tar.gz)
2021-03-24 17:03:49 -03:00
Vinícius Rodrigues Miguel
bdc16fdb17
Add support for Bzip compression (includes .tar.bz2 and .zip.bz2 and etc)
2021-03-24 14:33:43 -03:00
Vinícius Rodrigues Miguel
433f8b05b0
Simplify Lzma decompression logic
2021-03-24 12:56:12 -03:00
Vinícius Rodrigues Miguel
729dda819e
Add support for Lzma decompression
2021-03-24 01:40:16 -03:00
Vinícius Rodrigues Miguel
f8ca0e3c56
Turns out LZMA decompression is not working
2021-03-23 23:17:48 -03:00
Vinícius Rodrigues Miguel
22e131fb46
Add support for zip (and... .zip.zip) compression
2021-03-23 21:28:22 -03:00
Vinícius Rodrigues Miguel
d72ca9eeae
Tar compression seemingly working
2021-03-23 03:10:25 -03:00
Vinícius Rodrigues Miguel
2c0f2b380c
Add Tar compression for in-memory buffers
2021-03-23 02:15:06 -03:00
Vinícius Rodrigues Miguel
fa2fb675de
WIP Tar compression
2021-03-23 01:06:57 -03:00
Vinícius Rodrigues Miguel
9429fd8d67
Fix CLI parsing of decompression commands & early Compressor work
2021-03-22 23:39:08 -03:00
Vinícius Rodrigues Miguel
52afe3afd8
Update README & minor code cleanup
2021-03-22 15:12:11 -03:00
Vinícius Rodrigues Miguel
e08703850c
Add support for decompressing .tar.{bz, xz, lz} and .zip.{bz, xz, lz}
2021-03-22 04:46:54 -03:00
Vinícius Rodrigues Miguel
77d7613967
WIP refactor
2021-03-22 03:44:56 -03:00
Vinícius Rodrigues Miguel
90ad9d8f8a
WIP decompression support for .xz, .bz, .lzma
2021-03-22 02:18:35 -03:00
Vinícius Rodrigues Miguel
6c7d24084f
decompressors.tar: Add info messages
2021-03-21 21:42:13 -03:00
Vinícius Rodrigues Miguel
23c8f567fc
Minor changes in decompressors/zip.rs
2021-03-21 19:18:32 -03:00
Vinícius Rodrigues Miguel
e705024c61
decompressors.zip: now working
2021-03-21 19:11:27 -03:00
Vinícius Rodrigues Miguel
0a81384dd8
(Small) Zip decompressor progress
2021-03-21 15:41:05 -03:00
Vinícius Rodrigues Miguel
837a6a6a57
Get Decompressors as Trait Objects, start working on Zip decompressor
2021-03-21 15:23:00 -03:00
Vinícius Rodrigues Miguel
8d36120690
refactor decompressors/tar.rs
2021-03-21 14:03:15 -03:00
Vinícius Rodrigues Miguel
d351a8ef7b
decompressors.tar: now working!
2021-03-21 04:23:00 -03:00
Vinícius Rodrigues Miguel
b6d4e50cca
Early progress in supporting .tar files
2021-03-21 04:09:28 -03:00
Vinícius Rodrigues Miguel
155fca4526
refactor: New File struct and switch to use Extension
2021-03-21 00:53:54 -03:00
Vinícius Rodrigues Miguel
7fd6020d99
Add struct Extension
2021-03-20 18:58:26 -03:00
Vinícius Rodrigues Miguel
73398c2d50
tests: Add tests for extension extraction
2021-03-19 15:18:32 -03:00
Vinícius Rodrigues Miguel
e04aba8d53
cli: More tests
2021-03-19 13:20:22 -03:00
Vinícius Rodrigues Miguel
65bc13e8fa
tests: Start adding test for the command-line interface
2021-03-19 12:40:49 -03:00
Vinícius Rodrigues Miguel
39abfdffde
typo: Compressable -> Compressible
2021-03-19 11:41:38 -03:00
Vinícius Rodrigues Miguel
a47f41a257
typo: Decompressable -> Decompressible
2021-03-19 11:40:17 -03:00
Vinícius Rodrigues Miguel
08489b028c
First commit
2021-03-19 04:40:19 -03:00