#!/usr/bin/env bash PREFIX="/usr" INFODESC=\''My Little Ponies for your terminal'\' CPPFLAGS="" CFLAGS="" LDFLAGS="" compileMethods='all' completions='completion/bash-completion.sh completion/fish-completion.fish completion/zsh-completion.zsh' shareDirs='ponies ttyponies quote' manFiles='manuals/manpage.6 manuals/manpage.es.6' licenseFiles='COPYING' function getcompdir() { if [ "$1" == 'bash' ]; then echo -n 'bash-completion/completions' elif [ "$1" == 'fish' ]; then echo -n 'fish/completions' elif [ "$1" == 'zsh' ]; then echo -n 'zsh/site-functions' fi } function getcompfile() { if [ "$1" == 'bash' ]; then echo -n "$2" elif [ "$1" == 'fish' ]; then echo -n "$2"'.fish' elif [ "$1" == 'zsh' ]; then echo -n '_'"$2" fi } for arg in "$@"; do opt="${arg%%=*}" val="${arg##*=}" if [ "$opt" = '--prefix' ]; then PREFIX="$val" elif [ "$opt" = '--info-desc' ]; then INFODESC=\'"$(sed -e s/\'/\''\\'\'\'/g <<<"$val")"\' fi done function correctPrefix() { for file in "$@"; do echo -en '\t' echo 'sed -e '\''s/'\''\'\'''\''\/usr\//'\''\'\''"$(SED_PREFIX)"'\''\//g'\'' < "'"$file"'" > "'"$file"'.install"' done } function gzCompress() { for file in "$@"; do echo -en '\t' echo 'gzip -9 -f < "'"$file"'" > "'"$file"'".gz' done } function thinkCompletion() { for file in "$@"; do echo -en '\tsed ' echo -n '-e '\''s/ponysay/ponythink/g'\' echo -n ' < "'"$file"'.install" | sed ' echo -n '-e '\''s/\/ponythink\//\/ponysay\//g'\' echo -n '-e '\''s/\\\/ponythink\\\//\\\/ponysay\\\//g'\' thinkfile="${file%%.*}-think.${file##*.}" echo ' > "'"$thinkfile"'"' done } echo "PREFIX = $PREFIX" echo "INFODESC = $INFODESC" echo "CPPFLAGS = $CPPFLAGS" echo "CFLAGS = $CFLAGS" echo "LDFLAGS = $LDFLAGS" function makeMakefile() { echo 'PREFIX='\'"$PREFIX"\' echo 'CPPFLAGS='\'"$CPPFLAGS"\' echo 'CFLAGS='\'"$CFLAGS"\' echo 'LDFLAGS='\'"$LDFLAGS"\' echo 'INSTALLDIR="$(DESTDIR)$(PREFIX)"' echo 'SED_PREFIX=$$(sed -e '\''s/\//\\\//g'\'' <<<$(PREFIX))' echo echo 'default: '"$compileMethods" echo echo 'all: core truncater manpages infomanual ponysaycompletion ponythinkcompletion' echo echo "core:" correctPrefix 'ponysay.py' echo echo "truncater:" echo -en '\t' echo '$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o "truncater" "truncater.c"' echo echo 'manpages:' gzCompress $manFiles echo echo 'infomanual:' echo -en '\t' echo 'makeinfo "manuals/ponysay.texinfo"' gzCompress 'ponysay.info' echo echo 'ponysaycompletion:' correctPrefix $completions echo echo 'ponythinkcompletion: ponysaycompletion' thinkCompletion $completions echo echo 'install-min: core truncater' echo -en '\t' ; echo 'mkdir -p "'"$shareDir"'"' for dir in $shareDirs; do echo -en '\t' ; echo 'mkdir "$(INSTALLDIR)/share/ponysay/ponies'"$dir"'"' echo -en '\t' ; echo 'cp -P "'"$dir"'/"*.* "$(INSTALLDIR)/share/ponysay/ponies'"$dir"'/"' done echo echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/bin/"' echo -en '\t' ; echo 'install "ponysay" "$(INSTALLDIR)/bin/ponysay"' echo -en '\t' ; echo 'install "ponysay.py" "$(INSTALLDIR)/bin/ponysay.py"' echo -en '\t' ; echo 'ln -sf "ponysay" "$(INSTALLDIR)/bin/ponythink"' echo -en '\t' ; echo 'ln -sf "ponysay.py" "$(INSTALLDIR)/bin/ponythink.py"' echo echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/lib/ponysay/"' echo -en '\t' ; echo 'install -s "truncater" "$(INSTALLDIR)/lib/ponysay/truncater"' echo echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/licenses/ponysay/"' for file in $licenseFiles; do echo -en '\t' echo 'install "'"$file"'" "$(INSTALLDIR)/share/licenses/ponysay/'"$file"'"' done echo for completion in $completions; do shell="${completion##*/}" shell="${shell%%-*}" thinkfile="${completion%%.*}-think.${completion##*.}" shelldir='$(INSTALLDIR)/share/'"$(getcompdir $shell)"'/' echo 'install-'"$shell"': ponysaycompletion ponythinkcompletion' echo -en '\t' ; echo 'mkdir -p "'"$shelldir"'"' echo -en '\t' ; echo 'install "'"$completion"'" "'"$shelldir$(getcompfile $shell ponysay)"'"' echo -en '\t' ; echo 'install "'"$thinkfile"'" "'"$shelldir$(getcompfile $shell ponythink)"'"' echo done echo 'install-pdf:' echo -en '\t' echo 'install "ponysay.pdf" "$(INSTALLDIR)/doc/ponysay.pdf"' echo echo 'install-info: infomanual' echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/info"' echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponysay.info.gz"' echo -en '\t' ; echo 'install "ponysay.info.gz" "$(INSTALLDIR)/share/info/ponythink.info.gz"' echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponysay.info.gz"' echo -en '\t' ; echo 'install-info --dir-file="$(INSTALLDIR)/share/info/dir" --entry="Miscellaneous" --description='"$INFODESC"' "$(INSTALLDIR)/share/info/ponythink.info.gz"' echo for man in $manFiles; do lang="${man##*manpage}" lang="${lang%%.6}" mandir="${lang/\.//}" echo 'install-man'"${lang/\./-}"': manpages' echo -en '\t' ; echo 'mkdir -p "$(INSTALLDIR)/share/man'"$mandir"'/man6"' echo -en '\t' ; echo 'install "'"$man"'.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponysay.6.gz"' echo -en '\t' ; echo 'ln -sf "ponysay.6.gz" "$(INSTALLDIR)/share/man'"$mandir"'/man6/ponythink.6.gz"' echo done cat < "ttyponies/\$\$pony" ;\\ git add "ttyponies/\$\$pony" ;\\ elif [ ! -f "ttyponies/\$\$pony" ]; then \\ ln -s \`readlink "ponies/\$\$pony"\` "ttyponies/\$\$pony" ;\\ git add "ttyponies/\$\$pony" ;\\ fi \\ done pdfmanual: texi2pdf "manuals/ponysay.texinfo" git add "manuals/ponysay.texinfo" "ponysay.pdf" for ext in \`echo aux cp cps fn ky log pg toc tp vr\`; do \\ (if [ -f "ponysay.\$\$ext" ]; then unlink "ponysay.\$\$ext"; fi); \\ done if [ -d "ponysay.t2d" ]; then rm -r "ponysay.t2d"; fi submodules: clean (cd "ponyquotes4ponysay/"; make clean) git submodule init git submodule update quotes: submodules (cd "ponyquotes4ponysay/"; make -B) if [ -d quotes ]; then git rm "quotes/"*.*; fi mkdir -p "quotes" cp "ponyquotes4ponysay/ponyquotes/"*.* "quotes" git add "quotes/"*.* EOF } makeMakefile > Makefile #install: install-no-info install-info # @echo -e '\n\n'\ #'/--------------------------------------------------\\\n'\ #'| ___ |\n'\ #'| / (_) o |\n'\ #'| \__ _ _ __ |\n'\ #'| / / |/ | | / \_| | |\n'\ #'| \___/ | |_/|/\__/ \_/|/ |\n'\ #'| /| /| |\n'\ #'| \| \| |\n'\ #'| ____ |\n'\ #'| | _ \ ___ _ __ _ _ ___ __ _ _ _ |\n'\ #'| | |_) |/ _ \ | '\''_ \ | | | |/ __| / _` || | | | |\n'\ #'| | __/| (_) || | | || |_| |\__ \| (_| || |_| | |\n'\ #'| |_| \___/ |_| |_| \__, ||___/ \__,_| \__, | |\n'\ #'| |___/ |___/ |\n'\ #'\\--------------------------------------------------/' # @echo 'dummy' | ./ponysay -f ./`if [[ "$$TERM" = "linux" ]]; then echo ttyponies; else echo ponies; fi`/pinkiecannon.pony | tail --lines=30 ; echo -e '\n' # #uninstall: # if [ -d "$(INSTALLDIR)/share/ponysay" ]; then rm -fr "$(INSTALLDIR)/share/ponysay" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay" ]; then rm -fr "$(INSTALLDIR)/lib/ponysay" ; fi # if [ -f "$(INSTALLDIR)/bin/ponysay" ]; then unlink "$(INSTALLDIR)/bin/ponysay" ; fi # if [ -f "$(INSTALLDIR)/bin/ponythink" ]; then unlink "$(INSTALLDIR)/bin/ponythink" ; fi # if [ -f "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ]; then unlink "$(INSTALLDIR)/share/licenses/ponysay/COPYING" ; fi # if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponysay" ; fi # if [ -f "$(INSTALLDIR)/share/bash-completion/completions/ponythink" ]; then unlink "$(INSTALLDIR)/share/bash-completion/completions/ponythink"; fi # if [ -f "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponysay.fish" ; fi # if [ -f "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ]; then unlink "$(INSTALLDIR)/share/fish/completions/ponythink.fish" ; fi # if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponysay"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponysay" ; fi # if [ -f "$(INSTALLDIR)/share/zsh/site-functions/_ponythink"; ]; then unlink "$(INSTALLDIR)/share/zsh/site-functions/_ponythink" ; fi # if [ -f "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponysay.6.gz" ; fi # if [ -f "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/man6/ponythink.6.gz" ; fi # if [ -f "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponysay.6.gz" ; fi # if [ -f "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ]; then unlink "$(INSTALLDIR)/share/man/es/man6/ponythink.6.gz" ; fi # if [ -f "$(INSTALLDIR)/share/info/ponysay.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponysay.info.gz" ; fi # if [ -f "$(INSTALLDIR)/share/info/ponythink.info.gz" ]; then unlink "$(INSTALLDIR)/share/info/ponythink.info.gz" ; fi # if [ -f "$(INSTALLDIR)/doc/ponysay.pdf" ]; then unlink "$(INSTALLDIR)/doc/ponysay.pdf" ; fi # #clean: # if [ -f "truncater" ]; then rm -f "truncater" ; fi # if [ -f "completion/bash-completion-think.sh" ]; then rm -f "completion/bash-completion-think.sh" ; fi # if [ -f "completion/fish-completion-think.fish" ]; then rm -f "completion/fish-completion-think.fish" ; fi # if [ -f "completion/zsh-completion-think.zsh" ]; then rm -f "completion/zsh-completion-think.zsh" ; fi # if [ -f "completion/bash-completion.sh.install" ]; then rm -f "completion/bash-completion.sh.install" ; fi # if [ -f "completion/fish-completion.fish.install" ]; then rm -f "completion/fish-completion.fish.install"; fi # if [ -f "completion/zsh-completion.zsh.install" ]; then rm -f "completion/zsh-completion.zsh.install" ; fi # if [ -f "manuals/manpage.6.gz" ]; then rm -f "manuals/manpage.6.gz" ; fi # if [ -f "manuals/manpage.es.6.gz" ]; then rm -f "manuals/manpage.es.6.gz" ; fi # if [ -f "ponysay.info.gz" ]; then rm -f "ponysay.info.gz" ; fi # if [ -f "ponysay.py.install" ]; then rm -f "ponysay.py.install" ; fi # #uninstall-old: # if [ -d "$(INSTALLDIR)/share/ponies" ]; then rm -fr "$(INSTALLDIR)/share/ponies" ; fi # if [ -d "$(INSTALLDIR)/share/ttyponies" ]; then rm -fr "$(INSTALLDIR)/share/ttyponies" ; fi # if [ -f "$(INSTALLDIR)/bin/ponysaytruncater" ]; then unlink "$(INSTALLDIR)/bin/ponysaytruncater" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/link.pl" ]; then unlink "$(INSTALLDIR)/lib/ponysay/link.pl" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/linklist.pl" ]; then unlink "$(INSTALLDIR)/lib/ponysay/linklist.pl" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps.pl" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps.pl" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps-list" ; fi # if [ -d "$(INSTALLDIR)/lib/ponysay/pq4ps-list.pl" ]; then unlink "$(INSTALLDIR)/lib/ponysay/pq4ps-list.pl" ; fi # #clean-old: # if [ -f "ponysaytruncater" ]; then rm -f "ponysaytruncater"; fi #