Commit Graph

194 Commits

Author SHA1 Message Date
Lynne Megido 0712bf0a6b
add support for MSI files to infer backend 2021-09-29 23:31:51 +10:00
Lynne Megido 47d94cf27b
simplify InferDb custom mimetypes
using `buf.starts_with(b"\xAB\xCD")` instead of `buf[0] == 0xAB && buf[1] == 0xCD` is shorter, easier to read, removes the need for the `buf.len() > xyz` check, and actually compiles to (much) less assembly:
https://godbolt.org/z/M7GePGn1T

isn't that just lovely
2021-09-29 23:29:21 +10:00
Lynne Megido 4c6163296c
flat_map_iter is 11% faster than flat_map 0uo 2021-09-25 19:55:32 +10:00
Lynne Megido 5e17e4efda
improved multithreading behaviour, & a new flag!
`-j`/`--jobs` can be used to manually set the number of threads to use for scanning files. additionally, fif won't bother with multi-threaded scanning when there are less than 32 files to scan.
2021-09-25 18:55:50 +10:00
Lynne Megido 741048839c
replace remaining OnceCells w/ Lazys, simplifying
i prefer Lazy because it simplifies initialisation by a lot, allowing for the removal of stuff like `init_db()` and the `clap_version()` functions
2021-09-25 00:54:52 +10:00
Lynne Megido c2e6738f6b
use Lazy instead of OnceCell for MIMEDB 2021-09-24 23:53:02 +10:00
Lynne Megido 97b0a6edaa
replace cached dep with custom hashmap thing
i benchmarked it with hyperfine and in terms of performance it's pretty much identical, with a slight (fraction of a percent) advantage to my implementation
2021-09-24 22:05:12 +10:00
Lynne Megido 3d41183f1c
move license to the end of `--help` output 2021-09-24 18:12:27 +10:00
Lynne Megido 8a7cbca461
cargo fmt, rearranging use statements
by setting `group_imports = "StdExternalCrate"` in `rustfmt.toml`, cargo fmt/rustfmt rearranges your use statements into three groups:
- std/core/alloc,
- followed by external crates,
- followed by self/super/crate
2021-09-24 18:11:25 +10:00
Lynne Megido 3ee8745440
test.py hasn't been testing the json feature 0uo
i've had it enabled on the gitlab CI runner, but not in my test.py script that i use for local testing stuff...
2021-09-23 02:34:10 +10:00
Lynne Megido afa2bb8784
is it "an str" (ess-tee-arh) or "a str" (stir)? 2021-09-23 02:09:57 +10:00
Lynne Megido 043e0972c5
include git commit SHA in `--version` output 2021-09-23 02:07:18 +10:00
Lynne Megido a800be63f7
use SmartStrings in more places 2021-09-23 01:33:41 +10:00
Lynne Megido bddd6caeb2
format 2021-09-23 01:21:15 +10:00
Lynne Megido 74ae55ac52
AIFF support w/ infer backend 2021-09-23 01:19:56 +10:00
Lynne Megido 7c36061e03
finish the cleanup job started by #59c87a37
somehow i forgot to remove all the { unreachable!() } clutter which was one of the main reasons i did the refactor in the first place... 0uo
2021-09-23 01:03:20 +10:00
Lynne Megido 88b5070a03
remove unneeded into() 2021-08-31 19:15:54 +10:00
Lynne Megido 2884f9fe4c
use SmartString properly 2021-08-28 18:21:53 +10:00
Lynne Megido fa49dd9fb5
merged inspectors module into files 2021-08-28 18:09:15 +10:00
Lynne Megido ebf2f152f0
moved string_type mod into lib.rs 2021-08-28 18:00:31 +10:00
Lynne Megido fb81f26ff5
cargo fmt 2021-08-28 17:59:04 +10:00
Lynne Megido 557f5132ff
new files module 2021-08-28 17:58:30 +10:00
Lynne Megido d625fef106
split fif into lib and bin 2021-08-28 17:54:01 +10:00
Lynne Megido 1f46bef10b
slightly nicer JSON write_all 2021-08-25 15:44:21 +10:00
Lynne Megido a2ce336fe7
use unstable sort 2021-08-25 15:26:41 +10:00
Lynne Megido 0404cff8b7
release v0.3.4 🥳 2021-08-07 00:42:07 +10:00
Lynne Megido ddde6acdd6
ignore_unknown_exts flag, slightly more testing 2021-08-07 00:19:30 +10:00
Lynne Megido b48b8d5a65
new-mime-guess update necessitated minor changes 2021-08-06 23:33:42 +10:00
Lynne Megido c3adaea88c
a minor multitude of meager modifications
- clippy.sh now works if you're a weirdo with spaces in their $HOME path
- a """performance optimisation""" to utils.rs so minor that i would be surprised if it saved the world one microwatt of electricity over my entire lifespan
- cargo update
- removed useless extension_from_path function
2021-08-01 01:44:17 +10:00
Lynne Megido 59c87a3729
minor refactoring to make formats.rs less icky 2021-07-24 16:21:20 +10:00
Lynne Megido 0d034a5c4b
minor logging changes
logs use abbreviated level names:
[D] example
instead of
[DEBUG] example

also, you can now use FIF_LOG instead of RUST_LOG
2021-07-01 18:52:53 +10:00
Lynne Megido e511d215be
minor bash/pwsh output changes
- bash now uses a heredoc to ensure that cheeky filenames containing linebreaks don't escape the echo string
- powershell rename-item now has the verbose flag that i didn't know existed
- there is now a newline between the error and successful output lines
2021-06-18 17:42:16 +10:00
Lynne Megido 4f78d93975
code cleanup 2021-06-18 15:36:05 +10:00
Lynne Megido 3b731a7c61
added --canonical-paths flag
Findings now takes a PathBuf instead of a reference to a Path but there's no noticeable performance change
2021-06-18 15:17:30 +10:00
Lynne Megido d0a6e918cc
block compilation if both backends are enabled 2021-06-14 18:23:49 +10:00
Lynne Megido ec4ad77136
donut repeat yourself 2021-06-14 17:54:11 +10:00
Lynne Megido bd1a2a3e3a
print some more handy info in trace logs 2021-06-14 17:35:47 +10:00
Lynne Megido 0278fe252e
kode kleanup 2021-06-14 17:08:52 +10:00
Lynne Megido 6934dd0b5e
move some commonly used constants into a single module 2021-06-14 17:07:38 +10:00
Lynne Megido 1ecc6e6c6e
semicolonic cleanse 2021-06-14 16:53:41 +10:00
Lynne Megido f8dcdf8a3c
nicer output for `fif -V` and `fif --version` 2021-06-14 16:29:41 +10:00
Lynne Megido 95956f8e30
fixed powershell output format 0u0; 2021-06-13 19:24:21 +10:00
Lynne Megido 8dac4127e9
added text output format
All checks were successful
continuous-integration/drone/push Build is passing
2021-06-07 15:21:47 +10:00
Lynne Megido ca5773c167
only test json if the feature's enabled 0uo 2021-05-10 09:44:03 +10:00
Lynne Megido 8341c4aaf7
rename `dirs` parameter to `dir` 2021-05-09 00:23:03 +10:00
Lynne Megido 81347a7658
mime_extension_lookup takes essence_str directly, videos aliases to video
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-08 00:32:44 +10:00
Lynne Megido 64efb0de27
merge webUI changes, fmt
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-06 09:29:20 +10:00
Lynne Megido 417893cae0
moved ScanError into findings.rs 2021-05-06 09:27:16 +10:00
Lynne Megido 0c0d3f12ea
new and improved rustfmt 2021-05-06 09:06:05 +10:00
Lynne Megido b93e111357
added JSON output 2021-05-06 08:57:42 +10:00
Lynne Megido 774e72423f
test powershell output too 2021-04-30 19:11:24 +10:00
Lynne Megido beebbbbb3b
replace fastrand dep with rand, rustfmt 2021-04-29 17:08:56 +10:00
Lynne Megido a60a19191a
reject lowercase exts bc they don't worky 2021-04-29 17:03:26 +10:00
Lynne Megido 090e4adafe
release v0.3.0!! \0u0/
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2021-04-28 23:21:27 +10:00
Lynne Megido 4acbcaaa9b
added quietness flag, set default log level to `info` 2021-04-28 22:20:10 +10:00
Lynne Megido 8cca5097d4
writablesln! 2021-04-28 21:39:56 +10:00
Lynne Megido a05af12352
fif now outputs the dir it was run from
- refactor Format function signatures to be more uniform
- add Shell and Bash aliases for Sh
2021-04-28 21:27:06 +10:00
Lynne Megido cb6e111f16
more comprehensive ext sets, link text/xml and application/xml, remove silly Powershell/PowerShell hack 2021-04-28 19:33:42 +10:00
Lynne Megido 4f5914ed75
-E and -X can now take multiple sets 2021-04-28 18:10:34 +10:00
Lynne Megido d5d58e1830
-e and -E can now be used together!
also changelog rewording

-e and -E can now be used together!
2021-04-28 17:17:38 +10:00
Lynne Megido af3d51fcda
cleaned up excluded_extensions 2021-04-28 17:12:34 +10:00
Lynne Megido d578efa7a4
rename videos set to video, multiple exts can be specified with multiple `-e` flags 2021-04-28 16:44:29 +10:00
Lynne Megido 22f1f280d7
added `-X` for excluding sets of extensions. `-X` is to `-E` as `-x` is to `-e`. 2021-04-28 16:16:32 +10:00
Lynne Megido b12c42adbb
publish my fork of mime_guess so it can be used w/ crates.io
crates.io doesn't allow you to use path or git dependencies - you can only depend on published crates. i didn't really want to publish my mime_guess fork, since i don't really see anyone besides myself using it (and i don't really want my fork to "dethrone" the original or whatever), but unless i want `cargo install fif` to give you a version of fif that tells you XML files should have the extension ".asa", i kind of have to do this :c
2021-04-28 15:17:40 +10:00
Lynne Megido fc51f8128a
rustfmt 2021-04-27 20:26:01 +10:00
Lynne Megido 7e3efbed5c
added exclude flag for excluding extensions
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-27 20:25:41 +10:00
Lynne Megido 40bdac274f
minor cleanup 2021-04-26 22:32:43 +10:00
Lynne Megido 889b2e2316
move ExtensionSet stuff into parameters.rs 2021-04-26 22:17:57 +10:00
Lynne Megido 2ceafb7acf
added -v/--verbose 2021-04-26 22:15:14 +10:00
Lynne Megido d6974b4959
writables!, windows newlines, sorted changelog, always quote paths
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-26 20:19:58 +10:00
Lynne Megido 4d553587aa
fixed powershell output
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-20 19:00:56 +10:00
Lynne Megido 255665cae0
output is now sorted 0u0
sort order: files that couldn't be read, then files with no known mimetype, then files with no known extensions, then files with the wrong extension
2021-04-20 18:52:49 +10:00
Lynne Megido b877d7d65e
xdg-mime no longer uses git version 0u0 2021-04-20 17:26:31 +10:00
Lynne Megido dc2ac7b002
reformatting/reordering 2021-04-20 15:20:10 +10:00
Lynne Megido 83091c754d
removed duplicate Archives pattern in extension_set.rs 2021-04-14 19:17:41 +10:00
petra-fied 48632a471a Merge branch 'master' of https://git.bune.city/lynnesbian/fif
 Conflicts:
	Cargo.lock
2021-04-14 19:08:52 +10:00
petra-fied 59a3042ebc added .rpa format support, new system extension set 2021-04-14 19:08:18 +10:00
Lynne Megido e7637013eb
documented and cleaned up tests, renamed "Script" to "Shell", etc
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-14 18:25:46 +10:00
Lynne Megido 9c8be183d9
new release! 0u0
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
also i increased BUF_SIZE to 8192 bytes
2021-04-14 17:27:44 +10:00
Lynne Megido 383f6a30f2
improved pre-OOXML office mime detection
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-14 16:49:14 +10:00
Lynne Megido 21dfe93a05
better DLL/EXE support, fixed weird symlink semidemihemibug
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-14 16:29:38 +10:00
Lynne Megido d54cc8d6da
added text extension set, more test coverage, cargo update
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-08 23:33:33 +10:00
Lynne Megido be37b24705
better documentation for parameters, renamed Script to Sh 2021-04-07 01:47:40 +10:00
Lynne Megido fb67c11eb6
add option for following symlinks, make extensions optional, new version!!
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2021-04-04 23:52:16 +10:00
Lynne Megido 12d9001bb8
better mime type detection
- consider some/x-thing and some/thing to be identical
- use a patched version of mime_guess with many more extension/type mappings
2021-04-04 22:44:48 +10:00
Lynne Megido 25c9efa2f1
fixed compilation on some obscurish architectures (e.g. powerpc), more clippy lints 2021-04-03 03:52:28 +10:00
Lynne Megido 7115692f9d
fixed tests
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-26 05:11:21 +10:00
Lynne Megido 129aa83ade
lots of stuff! and a version bump!! 0u0
All checks were successful
continuous-integration/drone/tag Build is passing
- extension_from_path now returns Option<&OsStr>
- two new tests
- Findings uses a Path instead of a PathBuf, reducing allocations
- some unnecessary stuff removed, thanks clippy
- that is all
2021-03-26 04:46:07 +10:00
Lynne Megido 40a90308a5
initial (and somewhat bonked) powershell support, cargo update 2021-03-26 00:28:03 +10:00
Lynne Megido 87dab7284f
test on alpine, clippy & rustfmt
Some checks failed
continuous-integration/drone/push Build is failing
2021-03-12 03:44:31 +10:00
Lynne Megido e3af10cf5b
replaced some pathbufs with paths, made it actually compile and work 0uo
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-12 03:26:35 +10:00
Lynne Megido 6d55b3c309
removed an unecessary allocation
Some checks failed
continuous-integration/drone/push Build is failing
you know what they say, premature optimisation is the best optimisation
2021-03-12 02:55:40 +10:00
Lynne Megido 8a152d4118
new option for scanning extensionless files, nicer #[cfg]s, -s no longer skips hidden root dir...
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
2021-03-03 01:12:29 +10:00
Lynne Megido 4412161193 nicer output for --help
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-01 20:20:46 +10:00
Lynne Megido 5907309689 renamed modules in accordance with https://rust-lang.github.io/api-guidelines/naming.html 2021-03-01 19:21:00 +10:00
Lynne Megido 32da919f81 replace (ScanError, PathBuf) with just ScanError (which now contains a PathBuf) 2021-03-01 19:18:20 +10:00
Lynne Megido 1aa355e753
version bump - wrote docs, logging by default, and more 2021-03-01 01:23:52 +10:00
Lynne Megido ecee74eb29
oops 0uo 2021-03-01 00:52:37 +10:00
Lynne Megido 31aaa80701
documentation!!! ≥50% coverage!!! wow!!!!! 2021-03-01 00:06:05 +10:00
Lynne Megido e294f56ecf
move main() to the top of main.rs because wynaut 2021-02-28 22:20:15 +10:00