From 07e9e8ac673938a9e2467132dad02c0e4a8c507f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Fri, 25 Mar 2022 20:24:23 +0100 Subject: skript za adriana --- "inf/rtk/dr\305\276avno/berime.sh" | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 "inf/rtk/dr\305\276avno/berime.sh" diff --git "a/inf/rtk/dr\305\276avno/berime.sh" "b/inf/rtk/dr\305\276avno/berime.sh" new file mode 100755 index 0000000..ce710b3 --- /dev/null +++ "b/inf/rtk/dr\305\276avno/berime.sh" @@ -0,0 +1,38 @@ +#!/bin/bash +# Državno tekmovanje poteka v živo. Naloge se rešuje na papir. Mogoče bo kakšna naloga zahtevala pravilen program, zato s bom za pogosto uporabljene funkcije izpisal pomembne dele manpages. +# +# Začel sem z osnovnim ukazom +# +# a@ass:~/projects/sola-gimb-2/inf/rtk[0]$ grep -rno '[a-zA-Z_]*\s*(' . 2>/dev/null | cut -d: -f3 | grep -v '^($' | cut -d\( -f1 | sort | uniq | xargs -n1 -- man -S2,3 +# +# ki učinkovito pokaže omejitve xargs -- izhod man mora iti v tiskalnik. Bolje bi lahko zadevo izpeljal z +# +# | while read f +# do +# man -S2,3 $f | head -n30 >> /tmp/tisk.txt +# [ ${PIPESTATUS[0]} -eq 0 ] && echo --------------------------------- >> /tmp/tisk.txt +# done +# +# kjer man širino vrstice itak pobere iz terminala. +# +# Tukaj pa izgubimo poudarke, ki jih groff nariše na terminal z ubežnimi kontrolnimi znaki, ki tiskalniku pogosto ne pomenijo ničesar. Sicer bi bilo zanimivo izdelati uniksaški tiskalniški filter, ki bi znal brati te stilizacijske znake, vendar namesto tega lahko man prepričamo, da groff namesto besedila nariše tudi PDF. +# +# man -Tpdf man | zathura - +# +# da se znebimo dupliciranih vnosov, recimo za fprintf in printf je manpage isti, uporabimo +# +# f=`man -dS2,3 $v 2>&1 > /dev/null | grep ult_softlink | head -n1 | rev | cut -d/ -f1 | rev | cut -d. -f1` +# +# Celoten ukaz je torej sledeč: +t=`mktemp -td tekmovanje.XXXXXXX` +grep -Rno '[a-zA-Z_]*\s*(' . 2>/dev/null | cut -d: -f3 | grep -v '^($' | cut -d\( -f1 | cut -d' ' -f1 | sort | uniq \ + | while read v + do + f=`man -dS2,3 $v 2>&1 > /dev/null | grep ult_softlink | head -n1 | rev | cut -d/ -f1 | rev | cut -d. -f1` + e=${PIPESTATUS[0]} + [ ! $f ] && f=$v + [ $e -eq 0 ] && man -S 2,3 -Tpdf $f > $t/$f.pdf && pdfseparate -l 1 $t/$f.pdf $t/%dstran-$f.pdf && pdfcrop --margins "10 10 10 10" $t/1stran-$f.pdf $t/1stran-$f.pdf + done +pdfjam --nup 4x4 --outfile $t/združeni.pdf --clip true --frame true $t/1stran-*.pdf +pdfcrop --margins "20 10 10 20" $t/združeni.pdf $t/združeni.pdf +echo $t/združeni.pdf -- cgit v1.2.3