Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- read cvmPid < /var/run/cvm.pid
- if [[ -z "$cvmPid" ]]; then
- echo "cvm isn't running..."
- exit 2
- fi
- if [[ ! -e "/var/run/progRem.pid" ]]; then
- echo $$ > "/var/run/progRem.pid"
- else
- echo "Progress bar remover is already running"
- exit 1
- fi
- trap "rm /var/run/progRem.pid ; exit" SIGINT SIGTERM
- ## Print white space over progress bar
- eraseProgress() {
- waitForEink
- eips -n 0 38 " "
- eips 0 39 " "
- }
- ## Check if we need to look for a book/check if current book is open
- bookCheck() {
- ## Check if cvm has a open file descriptor for a file in /mnt/us/documents/
- if [[ -n "$fd" -a -n "$book" ]]; then
- if [[ "$(realpath /proc/$cvmPid/fd/$fd 2> /dev/null)" == "$book" ]]; then
- if [[ "$bookType" != "BAD" ]]; then
- eraseProgress
- fi
- else
- book=""
- bookType=""
- findBook
- fi
- else
- findBook
- fi
- }
- ## Check if cvm has a file descriptor open in /mnt/us/documents
- findBook() {
- fd="$(ls -l /proc/$cvmPid/fd/ | awk '/\/mnt\/us\/documents\// {print $9}')"
- if [[ -n "$fd" ]]; then
- book="$(realpath /proc/$cvmPid/fd/$fd 2> /dev/null)"
- bookType="${book##*.}"
- case $bookType in
- [Mm][Oo][Bb][Ii]|[Pp][Dd][Ff]|[Pp][Rr][Cc]|[Aa][Zz][Ww]*|[Tt][Xx][Tt])
- eraseProgress
- ;;
- *)
- bookType="BAD"
- ;;
- esac
- fi
- }
- ## Check if /var/log/messages has changed within the last second
- waitForEink() {
- c=1
- while [[ "$(stat -c %Y /var/log/messages)" -lt "$time" -a "$c" -lt "10" ]]; do
- let c+=1
- usleep 100000
- done
- }
- ## Wait for page turn
- while :; do
- case "$(waitforkey)" in
- 191*|109*|104*|193*)
- time="$(($(date +%s)-1))"
- bookCheck
- ;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement