summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md16
-rwxr-xr-xman2pdf70
2 files changed, 86 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ce40748
--- /dev/null
+++ b/README.md
@@ -0,0 +1,16 @@
+# man2pdf
+
+Pequeño script para visualizar o guardar manpages a pdf
+
+## Uso
+
+man2pdf \[Capitulo\] \[Manpage\] \[Archivo\]
+
+El **unico** campo obligatorio es obviamente el del manpage.
+Si no se proporciona el nombre del archivo, el manpage se abrira
+en una ventana de visor de pdf que desee. Para esto, solo hay que
+cambiar la variable VIEWER (linea 3 del script) al que mas le agrade.
+
+## Autor
+
+Matias Linares <mlm0111@famaf.unc.edu.ar>
diff --git a/man2pdf b/man2pdf
new file mode 100755
index 0000000..9ff3d75
--- /dev/null
+++ b/man2pdf
@@ -0,0 +1,70 @@
+#!/bin/bash
+
+# Autor: Matias Linares <mlm0111@famaf.unc.edu.ar>
+
+VIEWER=evince
+PARAMS=("$@")
+re='^[0-9]+$'
+
+function usage {
+ printf "$0 [CHAPTER] [MANPAGE] [FILE]\n\n"
+ printf "Convierte una pagina de manual a pdf. Si el archivo para guardarlo\n"
+ printf "no esta definido, se abrira con el visor de pdf de su preferencia.\n\n"
+
+ printf "[CHAPTER] y [FILE] Pueden ser omitidos tranquilamente.\n"
+}
+
+function isnumber {
+ num=$1
+ if ! [[ $num =~ $re ]]; then
+ echo 0
+ else
+ echo 1
+ fi
+}
+
+assert_manpage() {
+ man -t $1 $2 > /dev/null || exit 1
+}
+
+
+if [ ${#PARAMS[*]} -eq 0 ] || [ ${#PARAMS[*]} -gt 3 ] ||
+ [ "${PARAMS[0]}" = "-h" ] || [ "${PARAMS[0]}" = "--help" ]
+then
+ # Fallan los parametros o queremos ver la ayuda :p
+ usage
+elif [ ${#PARAMS[*]} -eq 1 ]
+then
+ # Un solo parametro
+ assert_manpage ${PARAMS[0]}
+ name="/tmp/${PARAMS[0]}.pdf"
+ manpage=${PARAMS[0]}
+ man -t $manpage | ps2pdf - > "$name"
+ $VIEWER $name 2> /dev/null &
+elif [ ${#PARAMS[*]} -eq 2 ]
+then
+ # Son dos parametros.
+ if [ $(isnumber ${PARAMS[0]}) -eq 0 ]
+ then
+ # Tenemos un archivo al que escribir
+ assert_manpage ${PARAMS[0]}
+ manpage=${PARAMS[0]}
+ name="${PARAMS[1]}"
+ man -t ${PARAMS[0]} | ps2pdf - > "${PARAMS[1]}"
+ else
+ # Vemos el archivo con su respectiva pagina de manual
+ assert_manpage ${PARAMS[0]} ${PARAMS[1]}
+ name="/tmp/${PARAMS[1]}${PARAMS[0]}.pdf"
+ chapter=${PARAMS[0]}
+ manpage=${PARAMS[1]}
+ man -t $chapter $manpage | ps2pdf - > "$name"
+ $VIEWER $name 2> /dev/null &
+ fi
+else
+ name="${PARAMS[2]}"
+ chapter=${PARAMS[0]}
+ manpage=${PARAMS[1]}
+ man -t $chapter $manpage | ps2pdf - > "$name"
+fi
+
+exit 0