Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
601 commits
Select commit Hold shift + click to select a range
7d50662
make HTML output more usable
jhspetersson Dec 9, 2025
8e8a006
add FLOOR, CEIL and ROUND functions
jhspetersson Dec 9, 2025
65fa29c
update dependencies
jhspetersson Dec 9, 2025
c6a5185
bump version
jhspetersson Dec 9, 2025
923234c
add CONTAINS_GREEK function
jhspetersson Dec 12, 2025
0e7138d
add CONTAINS_GREEK function
jhspetersson Dec 13, 2025
2ca72ee
update dependencies
jhspetersson Jan 3, 2026
75a18eb
update dependencies
jhspetersson Jan 4, 2026
f2cf2aa
add a check for errors
jhspetersson Jan 7, 2026
6f6d9c4
update dependencies
jhspetersson Jan 18, 2026
a270241
don't exit from interactive mode on datetime parsing errors
jhspetersson Jan 24, 2026
f97830a
don't fail on parsing booleans
jhspetersson Jan 24, 2026
89b4253
don't fail on parsing file sizes
jhspetersson Jan 25, 2026
30c3021
extract error functions into a separate submodule
jhspetersson Jan 25, 2026
1c1a301
don't fail on parsing globs and LIKE expressions
jhspetersson Jan 25, 2026
acc61a3
don't fail on parsing .hgignore
jhspetersson Jan 25, 2026
a5ebe94
don't fail on parsing .dockerignore
jhspetersson Jan 25, 2026
66e17c0
add pwd and cd commands to interactive mode
jhspetersson Jan 26, 2026
af6844c
save/load history for interactive mode
jhspetersson Jan 27, 2026
684eaa7
document interactive mode commands
jhspetersson Jan 28, 2026
9f93cb5
get rid of error_exit
jhspetersson Jan 30, 2026
d426cba
remove bogus root option
jhspetersson Jan 31, 2026
f93d821
add interactive debug command
jhspetersson Jan 31, 2026
1aec207
add error reporting toggle
jhspetersson Jan 31, 2026
50fe47a
fix no_color usage
jhspetersson Jan 31, 2026
0dbc1b1
add support for US dates format
jhspetersson Feb 1, 2026
3870552
add support for US dates format
jhspetersson Feb 1, 2026
87fc047
add OFFSET support
jhspetersson Feb 1, 2026
96146ea
add parsing offset from limit M,N
jhspetersson Feb 2, 2026
aa7939a
update dependencies
jhspetersson Feb 3, 2026
aa237a9
update dependencies
jhspetersson Feb 4, 2026
f9d7b57
fix compilation warnings
jhspetersson Feb 19, 2026
90c01f6
update dependencies
jhspetersson Feb 23, 2026
5e02b03
update dependencies
jhspetersson Mar 3, 2026
2f2e656
bump version
jhspetersson Mar 3, 2026
f78c83c
add support for POSIX ACLs
jhspetersson Mar 8, 2026
233b491
add support for extended file attributes
jhspetersson Mar 9, 2026
ab56316
update .deb description and docs
jhspetersson Mar 9, 2026
c2f60d9
fix bugs in lexer
jhspetersson Mar 9, 2026
2fe218a
fix bugs in lexer
jhspetersson Mar 9, 2026
4134156
fix bugs in lexer
jhspetersson Mar 9, 2026
133ae0d
fix bugs in lexer
jhspetersson Mar 9, 2026
5aa0f28
fix bugs in lexer
jhspetersson Mar 9, 2026
265bac2
fix bugs in lexer
jhspetersson Mar 9, 2026
52d116c
fix bugs in lexer
jhspetersson Mar 9, 2026
39cfc56
add tests for variant type
jhspetersson Mar 9, 2026
bef45ea
fix bugs in lexer
jhspetersson Mar 10, 2026
602e8a6
fix bugs in lexer
jhspetersson Mar 10, 2026
1a97ebb
fix bugs in lexer
jhspetersson Mar 10, 2026
db433c5
fix bugs in lexer
jhspetersson Mar 10, 2026
42917bd
fix bugs in lexer
jhspetersson Mar 10, 2026
bc966db
fix bugs in lexer
jhspetersson Mar 10, 2026
d101910
fix bugs in lexer
jhspetersson Mar 11, 2026
f768bd4
fix bugs in lexer
jhspetersson Mar 11, 2026
3976bbf
fix bugs in lexer
jhspetersson Mar 11, 2026
61320c2
fix description of POSIX ACLs in usage guide
jhspetersson Mar 11, 2026
7a7a76d
fix bugs in parser
jhspetersson Mar 11, 2026
99f059e
fix bugs in parser
jhspetersson Mar 11, 2026
8a5b295
fix bugs in parser
jhspetersson Mar 11, 2026
cc92b31
fix bugs in parser
jhspetersson Mar 11, 2026
a05c389
fix bugs in parser
jhspetersson Mar 12, 2026
85a50cc
fix bugs in lexer and parser
jhspetersson Mar 12, 2026
2432bcf
fix bugs in parser
jhspetersson Mar 12, 2026
5a34d8a
update man page
jhspetersson Mar 12, 2026
ea788e4
fix bugs in parser
jhspetersson Mar 12, 2026
ca9da32
improved parsing of group by and order by expressions
jhspetersson Mar 12, 2026
20a24dd
remove dead code
jhspetersson Mar 12, 2026
ad71285
fix bugs in functions
jhspetersson Mar 12, 2026
cd7c7de
fix bugs in aggregate functions
jhspetersson Mar 12, 2026
a7c1762
fix bugs in functions
jhspetersson Mar 12, 2026
b02ca2b
fix panics in functions
jhspetersson Mar 12, 2026
835ca74
improve error handling in functions
jhspetersson Mar 12, 2026
6134844
fix bugs in functions
jhspetersson Mar 12, 2026
57fd5dc
fix bugs in math functions
jhspetersson Mar 12, 2026
de60eaa
fix bugs in functions
jhspetersson Mar 12, 2026
7f424a7
fix bugs in functions
jhspetersson Mar 12, 2026
d186c0a
fix bugs in locate and stats functions
jhspetersson Mar 13, 2026
03b439d
fix bugs stats functions
jhspetersson Mar 13, 2026
f3854f8
fix bugs in string functions
jhspetersson Mar 13, 2026
852ac07
fix bugs in string and math functions
jhspetersson Mar 13, 2026
9ab1332
fix corner cases in math functions
jhspetersson Mar 13, 2026
68236ae
fix RANDOM and SUM functions
jhspetersson Mar 13, 2026
630b238
fix corner cases in functions
jhspetersson Mar 13, 2026
929fa4b
fix corner cases in functions
jhspetersson Mar 13, 2026
92637b6
fix corner cases in functions
jhspetersson Mar 13, 2026
c9696cc
fix corner cases in functions
jhspetersson Mar 13, 2026
e11ffab
fix LOCATE function
jhspetersson Mar 13, 2026
e0b49c8
add a parameter to ROUND function
jhspetersson Mar 13, 2026
522adf7
fix ROUND function corner cases
jhspetersson Mar 13, 2026
1d201a6
fix corner cases in functions
jhspetersson Mar 13, 2026
efac148
fix contains_numeric missing right and args
jhspetersson Mar 13, 2026
1c1faa7
fix contains_datetime missing right and args
jhspetersson Mar 13, 2026
39439a7
fix contains_colorized missing right
jhspetersson Mar 13, 2026
ce1e7a9
fix Display dropping all operators
jhspetersson Mar 13, 2026
bb6a588
fix Display dropping function args
jhspetersson Mar 13, 2026
0cde983
fix add_left not subtracting old weight
jhspetersson Mar 13, 2026
32bb1f6
fix set_args not subtracting old weight
jhspetersson Mar 13, 2026
1f0e6a1
fix get_fields_required_in_subqueries missing args
jhspetersson Mar 13, 2026
26424d2
fix Op::from missing notbetween, notin, notexists
jhspetersson Mar 13, 2026
dc366c2
fix calc division/modulo by zero returning 0
jhspetersson Mar 13, 2026
18e5687
fix calc overflow silently returning 0
jhspetersson Mar 13, 2026
4789943
fix to_int parsing as usize instead of i64
jhspetersson Mar 13, 2026
674a958
fix to_float allowing NaN/inf from string parse
jhspetersson Mar 13, 2026
40fc5f4
fix to_int failing on float strings like 3.14
jhspetersson Mar 13, 2026
075395c
fix negate removing all exclamation marks
jhspetersson Mar 13, 2026
11a75f6
fix dockerignore negation not using last-match-wins
jhspetersson Mar 13, 2026
856803e
fix path regex metacharacters not escaped
jhspetersson Mar 13, 2026
25152f8
fix hgignore ? matching multiple chars
jhspetersson Mar 13, 2026
9917191
fix hgignore glob path not regex-escaped
jhspetersson Mar 13, 2026
8451425
fix hgignore regexp path not regex-escaped
jhspetersson Mar 13, 2026
f94dab8
fix hgignore glob not escaping brackets and metacharacters
jhspetersson Mar 13, 2026
7b80e85
fix relative symlinks not resolved in traversal
jhspetersson Mar 13, 2026
262d078
fix depth calculation u32 underflow
jhspetersson Mar 13, 2026
9eec7b1
fix check_file error stopping entire directory
jhspetersson Mar 13, 2026
290758c
fix visited_dirs using raw path instead of canonical
jhspetersson Mar 13, 2026
ef669aa
fix symlink to file triggering directory traversal
jhspetersson Mar 13, 2026
e089067
fix visited_dirs and ignore filters leaking between roots
jhspetersson Mar 13, 2026
b171e56
fix archive check_file error stopping directory traversal
jhspetersson Mar 13, 2026
5fc1459
fix hgignore tests on windows, fix windows code bugs
jhspetersson Mar 13, 2026
dffaf11
add windows-only hgignore tests
jhspetersson Mar 13, 2026
d5b3561
fix broken pipe not propagated through BFS/DFS traversal
jhspetersson Mar 13, 2026
7f08587
remove redundant ignore condition check
jhspetersson Mar 13, 2026
3020d18
fix archive limit check in buffered mode
jhspetersson Mar 13, 2026
f674844
skip symlink resolution when not following symlinks
jhspetersson Mar 13, 2026
b2ac3e3
fix file type detection using S_IFMT mask
jhspetersson Mar 13, 2026
79557b4
fix supports_colorization always returning false
jhspetersson Mar 13, 2026
f1ee33c
add SearchError type with error levels, stop search on fatal errors
jhspetersson Mar 14, 2026
c3aaa98
add source field to SearchError, color source yellow in error messages
jhspetersson Mar 14, 2026
77c691b
fix colorization missing when no metadata-dependent fields are selected
jhspetersson Mar 14, 2026
9470c5d
fix clear not resetting count
jhspetersson Mar 14, 2026
01ee003
fix is_file not checking backslash for archived dirs
jhspetersson Mar 15, 2026
31d83ae
fix hgignore/dockerignore filters cleared after loading
jhspetersson Mar 15, 2026
28e33b1
add is_sticky field
jhspetersson Mar 15, 2026
b25e4e6
fix get_metadata not following symlinks
jhspetersson Mar 15, 2026
6f116cd
remove Rc from partitioned_output_buffer
jhspetersson Mar 15, 2026
4c073e0
use TopN for grouped aggregate sort and limit
jhspetersson Mar 15, 2026
cf9fd31
skip rendering in check_file for aggregate queries
jhspetersson Mar 15, 2026
cbbf556
eliminate aux_buffer
jhspetersson Mar 15, 2026
38cd443
remove dead code
jhspetersson Mar 15, 2026
17685df
simplify tests
jhspetersson Mar 15, 2026
27a3c8c
remove partitioned_output_buffer field
jhspetersson Mar 15, 2026
6eeaaf3
cache ordering Rc's on Searcher struct
jhspetersson Mar 15, 2026
def4ad3
add row separators to grouped aggregate output
jhspetersson Mar 15, 2026
1f3ee16
drain raw_output_buffer instead of cloning
jhspetersson Mar 15, 2026
c22f2a0
streaming accumulators for aggregates
jhspetersson Mar 15, 2026
9cad9e6
fix In/NotIn subquery panic for float/bool/datetime
jhspetersson Mar 15, 2026
5cd181d
fix grouped aggregate subquery returning empty
jhspetersson Mar 15, 2026
0ce9ea8
avoid cloning entire query per file
jhspetersson Mar 15, 2026
5fa30bf
remove redundant to_string()
jhspetersson Mar 15, 2026
494a75f
clone only right branch instead of entire expr
jhspetersson Mar 15, 2026
971b51b
reuse temp HashMap in conforms
jhspetersson Mar 15, 2026
c6af8be
extract In/NotIn/Exists helpers to reduce duplication
jhspetersson Mar 15, 2026
180772b
skip get_all_fields for non-aggregate queries
jhspetersson Mar 15, 2026
8175a07
handle subquery errors instead of panicking
jhspetersson Mar 15, 2026
c5f43b8
extract match_pattern/match_glob helpers to deduplicate regex ops
jhspetersson Mar 15, 2026
0841f4f
remove redundant clone in get_in_args
jhspetersson Mar 15, 2026
6b9ba45
use to_string() instead of format!()
jhspetersson Mar 15, 2026
e57755b
hoist field_value.to_string() in String comparison
jhspetersson Mar 15, 2026
04e012e
use Option<Option<T>> for FileMetadataState
jhspetersson Mar 15, 2026
0e5ac3f
simplify canonical_path error handling
jhspetersson Mar 15, 2026
1abd3e7
simplify conforms short-circuit logic
jhspetersson Mar 15, 2026
8d98dea
reuse conforms temp_map allocation
jhspetersson Mar 15, 2026
11da0bf
remove redundant format! wrappers
jhspetersson Mar 15, 2026
6833b28
encapsulate is_hidden metadata access
jhspetersson Mar 15, 2026
45fea42
add TopN::iter_values to avoid cloning
jhspetersson Mar 15, 2026
8284950
cache subquery required fields per root
jhspetersson Mar 15, 2026
4f231e4
skip scalar eval of right side for In/Exists ops
jhspetersson Mar 15, 2026
32f63c5
fix Int In/NotIn truncation with float args
jhspetersson Mar 15, 2026
074000d
don't force limit=1 on grouped subqueries
jhspetersson Mar 15, 2026
5734c63
fix compile warnings
jhspetersson Mar 15, 2026
0408dbd
fix compilation flags
jhspetersson Mar 15, 2026
9a597d6
handle errors in grouped output
jhspetersson Mar 15, 2026
8575efb
avoid cloning full expr in get_in_args/check_exists
jhspetersson Mar 15, 2026
b737403
use take instead of clone for subquery_required_fields
jhspetersson Mar 15, 2026
2998a47
reuse HashMap in In/NotIn arg evaluation
jhspetersson Mar 15, 2026
0c41e2e
store function ref once in get_function_value
jhspetersson Mar 15, 2026
67a338e
ok_to_visit_dir does not need mut self
jhspetersson Mar 15, 2026
eb497a3
use flatten() instead of and_then(|o| o)
jhspetersson Mar 16, 2026
0a7837b
guard against empty mp3 frames vec
jhspetersson Mar 16, 2026
f21daf3
handle invalid regex in root path without panic
jhspetersson Mar 16, 2026
1f9260d
pass raw_query as &str to avoid clone
jhspetersson Mar 16, 2026
f015d84
avoid unnecessary path clone in ignore filter
jhspetersson Mar 16, 2026
6075f1c
extract check_in_list to deduplicate In/NotIn logic
jhspetersson Mar 16, 2026
73dbd70
simplify And/Or short-circuit logic in conforms
jhspetersson Mar 16, 2026
eccdd63
extract check_extension to deduplicate is_* methods
jhspetersson Mar 16, 2026
7708202
collapse exif string fields into single match arm
jhspetersson Mar 16, 2026
4d96acf
collapse is_archive/audio/book/etc into single match arm
jhspetersson Mar 16, 2026
7f84ed4
simplify colorize with match expression
jhspetersson Mar 16, 2026
d6af336
simplify ok_to_visit_dir to boolean expression
jhspetersson Mar 16, 2026
0b99140
extract handle_nonfatal_error to deduplicate error handling
jhspetersson Mar 16, 2026
2f52f51
return fatal error on invalid regex in root path
jhspetersson Mar 16, 2026
de10913
hoist Exists/NotExists above type dispatch
jhspetersson Mar 16, 2026
c8469d0
define identity fn once for Rx/NotRx
jhspetersson Mar 16, 2026
ee74179
hoist get_type() call outside loop in check_in_list
jhspetersson Mar 16, 2026
fce5064
collapse IsBinary/IsText into single match arm
jhspetersson Mar 16, 2026
1ee300d
remove redundant to_string/clone on context_key
jhspetersson Mar 16, 2026
4217106
use assignment instead of clear+append for ext_roots
jhspetersson Mar 16, 2026
82548cf
remove unnecessary Box around VecDeque
jhspetersson Mar 16, 2026
187c1a1
use imported Bfs/Dfs variants directly
jhspetersson Mar 16, 2026
6537cdc
remove unnecessary crate::util:: path prefixes
jhspetersson Mar 16, 2026
19a869a
remove redundant Variant/VariantType import
jhspetersson Mar 16, 2026
7f32d05
use fs::read_link instead of std::fs::read_link
jhspetersson Mar 16, 2026
404b6d9
update archive handling
jhspetersson Mar 16, 2026
f3c9007
avoid cloning args vec in check_in_list
jhspetersson Mar 17, 2026
c9f6148
simplify Cow to plain &str in is_archive/audio/etc
jhspetersson Mar 17, 2026
1d66b95
use match instead of result.err().unwrap()
jhspetersson Mar 17, 2026
faeac93
inline trivial has_ordering/has_aggregate_column wrappers
jhspetersson Mar 17, 2026
7f1fee3
restore conforms_map on early error return
jhspetersson Mar 17, 2026
fed4d41
simplify visit_dir signature
jhspetersson Mar 17, 2026
89f2072
fix compilation warnings
jhspetersson Mar 17, 2026
43cbc47
fix compilation warnings
jhspetersson Mar 17, 2026
d0d4a72
support has_acl on Windows
jhspetersson Mar 17, 2026
5bc7063
support xattrs on Windows
jhspetersson Mar 17, 2026
bd29dc1
fix docs formatting
jhspetersson Mar 17, 2026
ee6c386
move ACL, DEFAULT_ACL and HAS_CAPS from functions to fields
jhspetersson Mar 17, 2026
cb10965
add aliases to suid/sgid/is_sticky fields
jhspetersson Mar 17, 2026
de9164f
add aliases to suid/sgid/is_sticky fields
jhspetersson Mar 17, 2026
3a58053
add RDEV field for Unix/Linux
jhspetersson Mar 17, 2026
5e40b14
add atime, mtime, and ctime fields
jhspetersson Mar 17, 2026
5a06007
support ACL formatting on Windows
jhspetersson Mar 17, 2026
dfdf69f
update dependencies
jhspetersson Mar 17, 2026
5d3e7d6
add more datetime functions
jhspetersson Mar 18, 2026
60235ff
support capabilities v2 and v3
jhspetersson Mar 18, 2026
bb10a65
allow calling zero-arg functions (not only boolean) without parens
jhspetersson Mar 19, 2026
965628a
add xattr_count field
jhspetersson Mar 19, 2026
abed634
fixed NO_COLOR env var handling and other misc errors
jhspetersson Mar 19, 2026
3853716
fix redundant path canonicalization
jhspetersson Mar 19, 2026
cd8004e
simplify code
jhspetersson Mar 19, 2026
4fbf955
fix is_symlink behavior
jhspetersson Mar 19, 2026
56f4ea8
update GitHub actions
jhspetersson Mar 19, 2026
271cb98
get rid of redundant cloning
jhspetersson Mar 20, 2026
80b589b
clean up code
jhspetersson Mar 20, 2026
fd24d98
fix integer division truncating GPS EXIF rational values
jhspetersson Mar 20, 2026
3f0d643
fix GPS seconds divisor: 3660 -> 3600
jhspetersson Mar 20, 2026
10b27ba
fall back to PhotographicSensitivity for exif_iso
jhspetersson Mar 20, 2026
ae4c2fd
Revert "fall back to PhotographicSensitivity for exif_iso"
jhspetersson Mar 20, 2026
6dc4037
add exif_sensitivity field for PhotographicSensitivity tag
jhspetersson Mar 20, 2026
cf0efaa
document exif_sensitivity field in usage.md and manpage
jhspetersson Mar 20, 2026
fd918f3
add exif_datetime_original field
jhspetersson Mar 20, 2026
e6a6bf3
add exif_description field
jhspetersson Mar 20, 2026
cc74936
add exif_artist field
jhspetersson Mar 20, 2026
c8c0d5d
add exif_copyright field
jhspetersson Mar 20, 2026
edb1fe9
add exif_orientation field
jhspetersson Mar 20, 2026
6c9ff41
add exif_flash field
jhspetersson Mar 20, 2026
c56def6
add exif_color_space field
jhspetersson Mar 20, 2026
1112a7a
add exif fields: exposure_program, exposure_bias, white_balance, mete…
jhspetersson Mar 20, 2026
270eaa8
refactor field handling
jhspetersson Mar 20, 2026
25999a2
move field tests out of searcher
jhspetersson Mar 20, 2026
71f3070
fix build
jhspetersson Mar 20, 2026
ff0f8f5
fix build
jhspetersson Mar 20, 2026
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: build

on:
push:
branches: [ master ]
paths:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
pull_request:
branches: [ master ]
paths:
- 'src/**'
- 'Cargo.toml'
- 'Cargo.lock'
workflow_dispatch:

env:
CARGO_TERM_COLOR: always

jobs:

build:
strategy:
matrix:
os: ['ubuntu-latest', 'windows-latest', 'macos-latest']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/cache@v5
id: cache-deps
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
- name: Build test image and run tests in Docker
if: matrix.os == 'ubuntu-latest'
run: |
cargo build --release
mkdir docker-test && cp target/release/fselect docker-test/
cat > docker-test/Dockerfile <<EOF
FROM jhspetersson/fselect-tests
COPY fselect /opt/
ENTRYPOINT ["/opt/run_tests.sh"]
EOF
docker build -t fselect-test-img docker-test
docker run --rm fselect-test-img
shell: bash
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ out/

target

.cargo/config
.cargo/**
20 changes: 0 additions & 20 deletions .travis.yml

This file was deleted.

1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
fselect.rocks
Loading