Neofetch: Command-line system information tool written in bash
github.com
github.com
I particularly enjoyed this function that returns the ASCII-art logo for the current platform: https://github.com/dylanaraps/neofetch/blob/017aa041d86340f2...
I wonder how much of it is copied from screenfetch[1], which (I believe) is the "grandfather" for a lot of these kinds of information viewers.
I wrote my own version of screenfetch[2] a very long time ago, and I'm pretty sure I just ripped their ASCII-art directly :-)
[1]: https://github.com/KittyKatt/screenFetch/blob/c3a47890441166...
[0]: https://github.com/dylanaraps/neofetch/wiki/Neofetch-vs.-Scr...
https://k1sslinux.org/ https://github.com/dylanaraps/pure-sh-bible
Oil 0.8.pre4 - The Biggest Shell Programs in the World http://www.oilshell.org/blog/2020/04/release-0.8.pre4.html#t...
(or at least it could as of a year ago)
https://notcurses.com/ncneofetch.1.html
http://www.youtube.com/watch?v=dcjkezf1ARY&t=1m22s
(timecode link)
I've seen lots of profiles made around 2012 as well that post regularly but only have a tenth the amount of points as this one has.
Also, not sure why you're so quick to defend them. Bots are very common now a days. Its not unreasonable to assume most of the profiles that produce massive amounts of content on most social media platforms are bots.
https://camo.githubusercontent.com/82b03feab20083a17944229ea...
I've only ever used whatever the default terminal is so this seems fancy. Looks nice.
You're making a lot of assuptions. Many servers don't have git installed. Some only have python2. Some dont even have that. Not to mention AIX or other non-linux platforms
For almost all of the BSDs, Linux distros, Solaris, AIX, HPUX, countless others, you’re going to have both bash and Perl interpreters included by default.
I think installing python is generally quite reasonable! It’s just not as ubiquitous, so if you’re looking for a one-stop interpreted language that most people will neither need to install or worry about the interpreter version, then a baseline old version of bash or Perl is a pretty good bet.
Although really awk probably also deserves consideration in this regard, given that you will even have it on embedded Linux where bash and Perl are not. I don’t know enough about awk to comment on its general utility for doing something like neofetch, however.
Python is a huge beast compared to Bash.
curl -L https://github.com/dylanaraps/neofetch/raw/7.1.0/neofetch | bashBut if this wouldn't bother me, I would really want to rewrite it. Just look at the source. It is 11K LoC. It is very modular by nature, since there is a lot of stuff that is "the same, but slightly different" for each OS. It is really simple by nature, just a few dozens of directives, each of them should answer 1 pretty straight-forward question. So it should be fairly easy to read (and it actually makes a practical sense even for a user, since this is so much of a collection of knowledge about different OS, not so much a "real program"). But it's not (I mean, it's not easy to read, assuming you are comfortable with bash). And it's not badly-written bash-script, quite otherwise. It's just… bash. How exactly you'd improve that would depend on the language of choice, but every "proper" PL should make it possible to write this very thing in such a way, that reading it "entirely" in a few minutes would be trivial, and wouldn't require scrolling through 11K LoC. Just separating all ASCII-art from code and making a separate class (if we use Python) for each OS implementation with a common interface, extending 1 or more base-classes (for OS families) would improve it greatly, since it would take me literally seconds to see all directives it currently supports, and to find their implementations for the particular system I'm interested in. After scrolling through some maybe 200 LoC you'd feel that you know everything that it does, and the rest 10K LoC (or whatever it would be) are just "details".
So while actually suggesting to rewrite it in Python might show some lack of analysis, I wouldn't bash anyone for wishing it would have been written in Python.