onefetch icon indicating copy to clipboard operation
onefetch copied to clipboard

Allow disabling color codes in the output

Open tastyminerals opened this issue 11 months ago • 4 comments
trafficstars

Summary 💡

It would be nice to have an option to disable shell color codes and make the output of onefetch easier to parse. For example

[31;1mCommits[0m[39;1m:[0m [39m411[0m
[31;1mChurn (17)[0m[39;1m:[0m [39m.travis.yml 6[0m
[39m            …/workflows/build-test.yml 4[0m

is problematic once you want to collect some stats across many repos.

Similar neofetch issue: https://github.com/dylanaraps/neofetch/issues/753

Motivation 🔦

I want to collect repo summaries across many projects.

ls -d * | xargs -I {} onefetch "{}" --no-bots --no-merges --number-of-authors 10 --number-of-file-churns 3 --no-art --no-color-palette --no-bold > summary.txt

produces a file which is difficult to parse without stripping the shell color codes first.

tastyminerals avatar Dec 18 '24 16:12 tastyminerals

Maybe you could use this option?

  -o, --output <FORMAT>
          Outputs Onefetch in a specific format

          [possible values: json, yaml]

o2sh avatar Dec 18 '24 17:12 o2sh

Yeah, as @o2sh said, if you're looking for something machine-readable then you might want to use -o json. That, combined with jq, can help. E.g.

onefetch -o json | jq '.infoFields[].[]'

Though it might be reasonable to reinterpret the --true-color auto|never|always argument to --color auto|true|ansi|never.

spenserblack avatar Dec 18 '24 17:12 spenserblack

ok, -o json is a good workaround. the --color never or similar option could be a nice addition since one would expect the ability to disable colorization if --color exists. But I am good with json 👍

tastyminerals avatar Jan 07 '25 08:01 tastyminerals

If you're interested in making a PR for finer color controls, here's an example of how I implemented --color always|ansi|never: https://github.com/spenserblack/gengo/pull/491.

spenserblack avatar Jan 08 '25 14:01 spenserblack