1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #!/bin/bash
- usage() {
- cat <<-USAGE
- Usage: automan [PAGES]
- Wrapper for man that automatically reflows text on terminal resize.
- USAGE
- return $1
- }
- declare -r base_dir='/tmp/autoless'
- declare -a pages_arr
- declare -a less_args=(-L)
- [[ $1 == '--restore' ]] && less_args+=(+\'\') && shift
- mkdir $base_dir 2>/dev/null
- columns=$COLUMNS
- trap "rm -rf $base_dir" EXIT
- for page in "$@" ; do
-
- page=$(man -w $page)
- (($? != 0)) && continue
- page_base=$(basename $page)
- page_path=$base_dir/${page_base/bz2/txt}
- pages_arr+=($page_path)
-
-
-
- bzcat $page |\
- groff -spte -mandoc -Tutf8 -rLL=$((COLUMNS-1))n -rLT=$((COLUMNS-1))n \
- >${page_path} 2>/dev/null
- done
- less ${less_args[@]} "${pages_arr[@]}" &
- trap '
- (:;:) # pseudo-command used to force bash to set COLUMNS
- if (($columns != $COLUMNS)) ; then
- kill $!
- exec $(basename $0) --restore $@
- fi
- ' WINCH
- while ps -o pid= $! >/dev/null ; do : ; done
|