summaryrefslogtreecommitdiffstats
path: root/inf/rtk/državno/berime.sh
blob: ce710b34e090e6044bf08b3b083d22815c73b449 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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