|
|
@ -3,43 +3,40 @@
|
|
|
|
# Semplice shellscript che permette di stampare un file in una stampante del Dipartimento di Matematica
|
|
|
|
# Semplice shellscript che permette di stampare un file in una stampante del Dipartimento di Matematica
|
|
|
|
# da una qualsiasi shell Unix (Linux, MacOS, BSD...). Funziona anche da remoto!
|
|
|
|
# da una qualsiasi shell Unix (Linux, MacOS, BSD...). Funziona anche da remoto!
|
|
|
|
#
|
|
|
|
#
|
|
|
|
# Utilizzo: modifica lo script inserendo il tuo username di ateneo
|
|
|
|
|
|
|
|
# al posto di "f.minnocci" nella variabile _user.
|
|
|
|
|
|
|
|
# È consigliato aggiungere la propria chiave ssh nella
|
|
|
|
# È consigliato aggiungere la propria chiave ssh nella
|
|
|
|
# macchina `login` (o `ssh1`, se userete il server vecchio)
|
|
|
|
# macchina `login` (aula3/4)
|
|
|
|
# tramite il comando `ssh-copy-id`, in modo da non dover
|
|
|
|
# tramite il comando `ssh-copy-id`, in modo da non dover
|
|
|
|
# inserire la password ogni volta.
|
|
|
|
# inserire la password ogni volta.
|
|
|
|
|
|
|
|
|
|
|
|
## CAMBIA QUESTO
|
|
|
|
_HOME="/home/unipi"
|
|
|
|
_user="f.minnocci"
|
|
|
|
_SERVER="login"
|
|
|
|
_home="/home/unipi"
|
|
|
|
_NO_CLI=true
|
|
|
|
_server="login"
|
|
|
|
|
|
|
|
# _user="minnocci"
|
|
|
|
|
|
|
|
# _home="/home"
|
|
|
|
|
|
|
|
# _server="ssh1"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main() {
|
|
|
|
main() {
|
|
|
|
if $NO_CLI; then
|
|
|
|
|
|
|
|
for f in "$@"; do
|
|
|
|
for f in "$@"; do
|
|
|
|
scp "$f" "${_user}@${_server}.dm.unipi.it:${_home}/${_user}/printa4-$(basename "$f")"
|
|
|
|
scp "$f" "${_USER}@${_SERVER}.dm.unipi.it:${_HOME}/${_USER}/printa4-$(basename "$f")"
|
|
|
|
ssh -XY ${_user}@${_server}.dm.unipi.it "okular \"${_home}/${_user}/printa4-$(basename "$f")\" --print"
|
|
|
|
if $_NO_CLI; then
|
|
|
|
ssh ${_user}@${_server}.dm.unipi.it "rm \"${_home}/${_user}/printa4-$(basename "$f")\""
|
|
|
|
ssh -XY ${_USER}@${_SERVER}.dm.unipi.it "okular \"${_HOME}/${_USER}/printa4-$(basename "$f")\" --print"
|
|
|
|
done
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
options="$1"; shift
|
|
|
|
ssh ${_USER}@${_SERVER}.dm.unipi.it "lp $OPTIONS \"${_HOME}/${_USER}/printa4-$(basename "$f")\""
|
|
|
|
for f in "$@"; do
|
|
|
|
|
|
|
|
scp "$f" "${_user}@${_server}.dm.unipi.it:${_home}/${_user}/printa4-$(basename "$f")"
|
|
|
|
|
|
|
|
ssh ${_user}@${_server}.dm.unipi.it "lp $options \"${_home}/${_user}/printa4-$(basename "$f")\""
|
|
|
|
|
|
|
|
ssh ${_user}@${_server}.dm.unipi.it "rm \"${_home}/${_user}/printa4-$(basename "$f")\""
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
ssh ${_USER}@${_SERVER}.dm.unipi.it "rm \"${_HOME}/${_USER}/printa4-$(basename "$f")\""
|
|
|
|
|
|
|
|
done
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
usage() {
|
|
|
|
usage() {
|
|
|
|
cat <<EOF
|
|
|
|
cat <<EOF
|
|
|
|
Script che consente di stampare in Aula 4
|
|
|
|
Script che consente di stampare in Aula 4
|
|
|
|
|
|
|
|
|
|
|
|
Utilizzo: $(basename $0) <DOCUMENTO> <...>
|
|
|
|
Utilizzo: $(basename $0) [OPTIONS] <DOCUMENTO> <...>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Opzioni disponibili:
|
|
|
|
|
|
|
|
-h, --help mostra questo messaggio di aiuto
|
|
|
|
|
|
|
|
-u, --user USER specifica l'username di ateneo (default: $_USER)
|
|
|
|
|
|
|
|
-s, --server SERVER specifica il server (default: $_SERVER)
|
|
|
|
|
|
|
|
-d, --home HOME specifica la directory home (default: $_HOME)
|
|
|
|
|
|
|
|
-c, --cli OPTIONS stampa tramite "lp" invece che da interfaccia grafica tramite "okular",
|
|
|
|
|
|
|
|
passando gli opzioni di stampa per "lp" fra virgolette
|
|
|
|
|
|
|
|
|
|
|
|
Ad esempio:
|
|
|
|
Ad esempio:
|
|
|
|
|
|
|
|
|
|
|
@ -47,17 +44,10 @@ Ad esempio:
|
|
|
|
|
|
|
|
|
|
|
|
$(basename "$0") alg2.pdf commRingTheory.pdf
|
|
|
|
$(basename "$0") alg2.pdf commRingTheory.pdf
|
|
|
|
|
|
|
|
|
|
|
|
> NOTA: La variabile del nome utente usato per stampare va modificato all'interno dello script
|
|
|
|
$(basename "$0") --cli '-o sides=two-sided-short-edge' MR-impaginato.pdf
|
|
|
|
|
|
|
|
|
|
|
|
Per stampare tramite "lp" invece che da interfaccia grafica tramite "okular", è
|
|
|
|
|
|
|
|
possibile passare l'opzione "-c" o "--cli", seguita dagli argomenti di stampa
|
|
|
|
|
|
|
|
per "lp" fra virgolette, e passando come ultimo argomento i file PDF da stampare:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$(basename "$0") --cli "-o sides=two-sided-short-edge" MR-impaginato.pdf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> N.B.: L'esempio qua sopra usa le opzioni necessarie per poter stampare un file
|
|
|
|
|
|
|
|
> creato con lo script "impagina", per rilegare le dispense a libretto in A5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N.B.: L'opzione --cli usa le opzioni necessarie per poter stampare un file
|
|
|
|
|
|
|
|
creato con lo script "impagina", per rilegare le dispense a libretto in A5.
|
|
|
|
Altre opzioni utili da passare ad "lp":
|
|
|
|
Altre opzioni utili da passare ad "lp":
|
|
|
|
-d destination stampante da usare ("lpstat -d -p" mostra le stampanti disponibili)
|
|
|
|
-d destination stampante da usare ("lpstat -d -p" mostra le stampanti disponibili)
|
|
|
|
-n num-copies numero di copie da stampare
|
|
|
|
-n num-copies numero di copie da stampare
|
|
|
@ -74,17 +64,22 @@ error() {
|
|
|
|
usage
|
|
|
|
usage
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## PARSE OPTIONS
|
|
|
|
|
|
|
|
while [ "$#" -gt 0 ]; do
|
|
|
|
|
|
|
|
case $1 in
|
|
|
|
|
|
|
|
-h|--help) usage; exit 0;;
|
|
|
|
|
|
|
|
-u|--user) _USER="$2"; shift;;
|
|
|
|
|
|
|
|
-s|--server) _SERVER="$2"; shift;;
|
|
|
|
|
|
|
|
-d|--home) _HOME="$2"; shift;;
|
|
|
|
|
|
|
|
-c|--cli) _NO_CLI=false; OPTIONS="$2"; shift;;
|
|
|
|
|
|
|
|
-*) error "Opzione invalida: $1" ;;
|
|
|
|
|
|
|
|
*) break ;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
shift
|
|
|
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
if [ -z "$1" ]; then
|
|
|
|
error "Non hai specificato nessun file...\n"
|
|
|
|
error "Non hai specificato nessun file...\n"
|
|
|
|
else
|
|
|
|
else
|
|
|
|
case "$1" in
|
|
|
|
main "$@"
|
|
|
|
-h|--help)
|
|
|
|
|
|
|
|
usage ;;
|
|
|
|
|
|
|
|
-c|--cli)
|
|
|
|
|
|
|
|
NO_CLI=false; shift; main "$@" ;;
|
|
|
|
|
|
|
|
-*)
|
|
|
|
|
|
|
|
error "Opzione invalida: $1" ;;
|
|
|
|
|
|
|
|
*)
|
|
|
|
|
|
|
|
main "$@" ;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|