From ad0f062b584661062863df4a5c2ae4d958f5b687 Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Sun, 20 Oct 2013 17:10:56 -0300 Subject: first commit --- README.md | 16 +++++++++++++++ man2pdf | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 README.md create mode 100755 man2pdf 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 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 + +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 -- cgit v1.2.3-70-g09d2