Another copy of my dotfiles. Because I don't completely trust GitHub.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

66 lines
2.2 KiB

#!/bin/bash
## zaread - a simple script created by paoloap.
# default variables
zadir="$XDG_DATA_HOME"'/.zaread/'
reader="zathura"
# if ~/.zaread doesn't exist, we create it.
if [[ ! -d "$zadir" ]]; then
mkdir "$zadir"
mkdir "$zadir"cksum
fi
# if no arguments exit.
if [[ -z $@ ]]; then exit 1; fi
# if zathura is not installed, we force the user to choose a pdf reader
# after three wrong commands, the script exits 1
# if the user inserts a command that exists but is not a pdf reader then... then fuck him.
counter=0
while [[ -z `command -v "$reader"` ]]; do
if [ $counter -gt 3 ]; then exit 1; fi
let counter+=1
echo "Seems that you don't have zathura installed. Please choose an installed PDF reader:"
read reader
done
echo "We'll read PDF with $reader."
## create position and file variables ##
# complete file name (path excluded):
file=`echo "$@" | rev | cut -d'/' -f1 | rev`
# complete directory path:
# if it has been inserted absolute path ($@ starts with '/')
if [[ $@ =~ ^/ ]]; then
directory=`echo "$@" | rev | cut -d'/' -f2- | rev`"/"
# else (relative path inserted)
else
dir=`pwd`"/"`echo "$@" | sed 's|.[^/]*$||'`"/"
directory=`echo "$dir" | sed 's|//|/|'`
fi
echo "$directory""$file"
# if file type is pdf, then just read the file
if [[ `file "$directory""$file" | cut -d':' -f2 | cut -d' ' -f2` == "PDF" ]]; then
echo "The file is already in PDF format."
$reader "$directory""$file"
# else check if you already have its pdf version (if not, create it)
else
pdffile=`echo "$file" | rev | cut -d'.' -f2- | rev`".pdf"
check=`cksum "$directory""$file" | awk '{print $1}'`
# if pdf version hasn't ever been created, or it changed, then
# make conversion and store the checksum.
if [[ ( ! -f "$zadir$pdffile" ) || ( ! "$check" == `cat "$zadir"cksum/"$file".check` ) ]]; then
# if it's a mobi file, then convert it to epub (the command depends on calibre)
if [[ "$file" =~ ^.*\.mobi$ ]]; then
ebook-converter "$directory""$file" "$directory"`echo "$file" | sed 's/mobi$/epub/'`
else
libreoffice --convert-to pdf "$directory""$file" --headless --outdir "$zadir"
fi
echo "$check" > "$zadir"cksum/"$file".check
fi
$reader "$zadir$pdffile"
fi