mirror of
https://github.com/erkin/ponysay.git
synced 2024-11-22 20:38:00 +01:00
295 lines
14 KiB
Bash
Executable file
295 lines
14 KiB
Bash
Executable file
#!/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 <<EOF
|
|
## Scripts for maintainers
|
|
|
|
ttyponies:
|
|
mkdir -p "ttyponies"
|
|
for pony in \$\$(ls --color=no "ponies/"); do \\
|
|
echo "building ttypony: \$\$pony" ;\\
|
|
if [ \`readlink "ponies/\$\$pony"\` = "" ]; then \\
|
|
ponysay2ttyponysay < "ponies/\$\$pony" | tty2colourfultty -c 1 -e > "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
|
|
#
|