this post was submitted on 12 Mar 2024
1092 points (95.7% liked)

Programmer Humor

32495 readers
39 users here now

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

founded 5 years ago
MODERATORS
 

Please dont take this seriously guys its just a dumb meme I haven't written a single line of code in half of these languages

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 1 points 7 months ago (1 children)

wait how does your hack work?

[–] renzev 2 points 7 months ago (1 children)

So there are many different commands that compile LaTeX, right? pdflatex, pdftex, latexmk, etc. But they all do that thing where they ask for your input as soon as they encounter an error, right? Well, if you just pipe an empty echo command to them, it notices that stdin has reached end-of-file, and gives up trying to ask the user for input, and just exits on first error. So instead of pdflatex mydocument.tex, you can do echo | pdflatex mydocument.tex and it won't ask you for input if it sees an error, it'll just exit. There's probably a "proper" way to achieve the same behaviour, but I can't be arsed to read the docs.

Speaking of stupid TeX hacks, at one point I had a script called latex_compile_and_install_packages_until_it_works.sh. It's essentially a loop that repeatedly tries to compile a document, searches the output of the compiler for anything that looks like a missing package error, and pipes it to sudo tlmgr install. The "fuck it" of package management, arbitrary code execution exploit included!

(Sorry for the screenshot, I lost the original script in text form, probably for the better)

[–] [email protected] 2 points 7 months ago (1 children)

Haha that's brilliant! I have a similar script for Conda, where it tries to install R packages by first looking in bioconductor and then trying the rejects through conda-forge, and then the rejects from that are compiled from source or just outright rejected.

I would have thought you would have needed a (while :; do echo; done) | pdflatex or a yes "\end" | pdflatex, i.e. something that repeatedly generates output. It's actually quite elegant that pdflatex checks if stdin is already EOF

[–] renzev 2 points 7 months ago (1 children)

tries to install R packages by first looking in bioconductor and then trying the rejects through conda-forge, and then the rejects from that are compiled from source

Just do all of these in parallel to maximise the change of installing the correct version

[–] [email protected] 2 points 7 months ago

lmao, though it's noticeably missing pacman, guix, and "pkg install "should be "pkg add" :P