77 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
usage() {
 | 
						|
    cat <<EOF
 | 
						|
usage $0 [-o OUTPUT][-t TITLE][-h]
 | 
						|
 | 
						|
Options:
 | 
						|
  -o, --output      saves file to OUTPUT.pdf in current directory
 | 
						|
  -t, --title       title for the OUTPUT.pdf
 | 
						|
  -h, --help        show this message
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
working_dir=$(pwd)
 | 
						|
header="$working_dir/header.md"
 | 
						|
 | 
						|
formatting() {
 | 
						|
    cat <<EOF
 | 
						|
---
 | 
						|
toc-title: $1
 | 
						|
documentclass: report
 | 
						|
linkcolor: blue
 | 
						|
geometry: margin=1in
 | 
						|
---
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
# parsing long form
 | 
						|
for arg in "$@"; do
 | 
						|
    shift
 | 
						|
    case "$arg" in
 | 
						|
        '--help')       set -- "$@" '-h'    ;;
 | 
						|
        '--title')      set -- "$@" '-t'    ;;
 | 
						|
        '--output')     set -- "$@" '-o'    ;;
 | 
						|
        *)              set -- "$@" "$arg"  ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
# parsing args
 | 
						|
while getopts "ht:o:" opt ; do
 | 
						|
    case "$opt" in 
 | 
						|
        'h')
 | 
						|
            usage
 | 
						|
            exit 0
 | 
						|
            ;;
 | 
						|
        't')
 | 
						|
            TITLE="$OPTARG"
 | 
						|
            ;;
 | 
						|
        'o')
 | 
						|
            OUTPUT="$OPTARG"
 | 
						|
            ;;
 | 
						|
        '?')
 | 
						|
            usage
 | 
						|
            exit 1
 | 
						|
            ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
if [ -z "$OUTPUT" ] ; then
 | 
						|
    # default to folder name
 | 
						|
    OUTPUT=$(echo "$working_dir" | awk -F '/' '{print $NF}')
 | 
						|
fi
 | 
						|
 | 
						|
if [ -z "$TITLE" ] ; then
 | 
						|
    # defaults to output which will default to directory name
 | 
						|
    TITLE="$OUTPUT" 
 | 
						|
fi
 | 
						|
 | 
						|
# creates a temporary file for formatting
 | 
						|
formatting "$TITLE" > $header
 | 
						|
pandoc $header $working_dir/*.md --toc --toc-depth=1 -o "$OUTPUT.pdf"
 | 
						|
 | 
						|
# cleanup
 | 
						|
rm "$working_dir/header.md"
 | 
						|
 | 
						|
 |