From: Thomas Kupper Subject: Re: UPDATE: sysutils/exfetch -> 1.5.2.1 (hotfix applied) To: izzy Meyer , ports@openbsd.org Date: Thu, 19 Feb 2026 07:16:49 +0000 On 19.02.2026 00:26, izzy Meyer wrote: > On Wed, 18 Feb 2026 16:53:39 -0600 > izzy Meyer wrote: > >> Hello ports@ >> >> I've been feeling really motivated lately with exfetch and added some >> new features to it (see changelog below). I want to get this out into >> the wild as soon as possible, so people can play around and test it on >> their machines. >> >> Here's a simple update to sysutils/exfetch to a tag with these new >> features. >> >> Tested on amd64, works good. >> >> I'd like someone to test these new changes before they commit if >> that's ok. - Offset works for me: grumpy$ exfetch -f 7 -a OpenBSD USER -> oops@grumpy.somewhere.oops OS -> OpenBSD VER -> 7.8 UPTIME -> 37 days, 11:17 DE/WM -> unknown TERM -> screen SHELL -> ksh _____ CPU -> Intel Xeon CPU E5-2630 0 @ 2.30GHz \- -/ GPU -> unknown \_/ .` , \ PKGS -> 175 | , , 0 0 | LOAD -> 1m: 0.33, 5m: 0.26, 15m: 0.43 |_ < } 3 | SWAP -> 11.43 / 1264.00 MiB / \` . ` / MEM -> 52.32 / 1007.99 MiB /-_____-\ I understand providing a negative value will raise an ArgumentError as you mentioned in the man page. Is there a more elegant way than to show the whole call stack? Handle it similar like the color (-c|--color) argument? grumpy$ exfetch -f -7 -a OpenBSD Unhandled exception: ASCII offset cannot be negative. ILLEGAL (ArgumentError) from exfetch in '__register_frame_info' from exfetch in '__register_frame_info' from exfetch in 'main' from exfetch in 'main' from exfetch in '__start' - Text-Only works as expected: grumpy$ exfetch -c 1 -f 1 -a OpenBSD | tee output.with.escape grumpy$ exfetch -c 1 -T -f 1 -a OpenBSD | tee output.without.escape grumpy $ grep -c '\[' output.with.escape 13 grumpy $ grep -c '\[' output.without.escape 0 >> >> /usr/ports/sysutils/exfetch git:(master+) $ make test >> ===> Regression tests for exfetch-1.5.2 >> crystal spec --no-color -v -s -t -p --release >> Parse: 00:00:00.000283360 ( 0.90MB) >> Semantic (top level): 00:00:01.564889146 ( 124.76MB) >> Semantic (new): 00:00:00.004672048 ( 124.76MB) >> Semantic (type declarations): 00:00:00.084020180 ( 124.76MB) >> Semantic (abstract def check): 00:00:00.045015596 ( 124.76MB) >> Semantic (restrictions augmenter): 00:00:00.016167933 ( 124.76MB) >> Semantic (ivars initializers): 00:00:00.933157956 ( 196.82MB) >> Semantic (cvars initializers): 00:00:00.023979597 ( 196.82MB) >> Semantic (main): 00:00:00.734872077 ( 228.95MB) >> Semantic (cleanup): 00:00:00.001088280 ( 228.95MB) >> Semantic (recursive struct check): 00:00:00.002413409 ( 228.95MB) >> Codegen (crystal): 00:00:00.943954401 ( 260.95MB) >> Codegen (bc+obj): 00:00:24.314646013 ( 260.95MB) >> Codegen (linking): 00:00:00.853759568 ( 260.95MB) >> >> Macro runs: >> - >> /usr/ports/pobj/exfetch-1.5.2/exfetch/lib/baked_file_system/src/loader.cr: >> reused previous compilation (00:00:00.023271315) >> >> Codegen (bc+obj): >> - no previous .o files were reused >> Exfetch::CLI >> .colorize >> wraps text in ansi codes >> handles bright colors >> .render >> renders output string >> Exfetch::Manip >> .bytes_to_mebibytes >> converts bytes to mebibytes string >> .sanitize >> removes newlines and strips whitespace >> .has_command? >> returns true for existing commands >> returns false for non-existing commands >> .run_command >> runs a command and returns output >> returns empty string on failure >> .dir_size >> returns 0 for non-existent dir >> Exfetch::Options >> .parse >> parses default options >> parses flags >> parses color argument >> parses padding >> Exfetch::Resource >> .get_short_info >> returns basic info >> .get_uptime >> parses uptime correctly when mocked >> .get_shell >> returns shell basename >> .get_cpu >> returns cpu info >> >> Finished in 13.04 milliseconds >> 18 examples, 0 failures, 0 errors, 0 pending >> Execute: 00:00:00.059692262 >> >> Changelog: >> * Since(1.5.1) >> >> Misc Changes: >> >> Optimizations: >> >> Bugfixes: >> >> New features: >> - Added -T and --text-only options to disable ansi escape seqences >> - Added -f LINES and --ascii-offset=LINES options to offset ASCII by >> LINES >> > > Whoops, caused a bug in the offset code where ascii art would cut off > if there wasn't a corresponding label on that line. here's a new diff. > git tag bumped to 1.5.2.1, future versions will return to the X.Y.Z > format. >