From 28791ee8e4644c74639d315992faa3050dc21db1 Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Wed, 29 May 2019 15:22:14 +0800 Subject: =?UTF-8?q?cgit:=20syntax-highlighting.sh:=20=E6=94=B9=E7=94=A8=20?= =?UTF-8?q?bash=20=E4=B8=A6=E9=81=BF=E5=85=8D=E5=AF=AB=E6=AD=BB=E7=B5=95?= =?UTF-8?q?=E5=B0=8D=E8=B7=AF=E5=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cgit/syntax-highlighting.sh | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/cgit/syntax-highlighting.sh b/cgit/syntax-highlighting.sh index 38d9ca2..7f8b944 100755 --- a/cgit/syntax-highlighting.sh +++ b/cgit/syntax-highlighting.sh @@ -1,18 +1,20 @@ -#!/bin/sh +#!/usr/bin/env bash BASENAME="$1" EXTENSION="${BASENAME##*.}" TABSTOP="4" -[ "${BASENAME}" = "${EXTENSION}" ] && EXTENSION=txt -[ -z "${EXTENSION}" ] && EXTENSION=txt +if [ -z "${EXTENSION}" ] || [ "${BASENAME}" = "${EXTENSION}" ]; then + EXTENSION=txt +fi while \ [ "${EXTENSION}" = "in" ] || \ [ "${EXTENSION}" = "inc" ] || \ [ "${EXTENSION}" = "filters" ] || \ [ "${EXTENSION}" = "template" ]; do - BASENAME="${BASENAME%.*}"; EXTENSION="${BASENAME##*.}" + BASENAME="${BASENAME%.*}" + EXTENSION="${BASENAME##*.}" done case "${EXTENSION}" in @@ -31,11 +33,12 @@ case "${EXTENSION}" in service) EXTENSION=ini ;; # D-BUS desktop) EXTENSION=ini ;; # Launcher socket|device|mount|automount) EXTENSION=ini ;; # Systemd - automount|swap|target|path) EXTENSION=ini ;; # Systemd + swap|target|path) EXTENSION=ini ;; # Systemd timer|snapshot|slice|scope) EXTENSION=ini ;; # Systemd ac|m4) EXTENSION=sh ;; # Autoconf po|pot) EXTENSION=sh ;; # Gettext dirs) EXTENSION=sh ;; # user-dirs.dirs + install) EXTENSION=sh ;; # Arch Linux PKGBUILD am) EXTENSION=mk ;; # Automake p) EXTENSION=c ;; # MapleBBS xpm) EXTENSION=c ;; @@ -70,17 +73,21 @@ case "${BASENAME%%.*}" in esac case "${CGIT_REPO_NAME}" in - taiwan-online-judge*) TABSTOP=8 ;; - *) TABSTOP=4 ;; + taiwan-online-judge*) TABSTOP=8 ;; + *) TABSTOP=4 ;; esac -HIGHLIGHT="/usr/bin/highlight --force -f -I --inline-css -s edit-gedit -O xhtml -t $TABSTOP -S $EXTENSION" +HIGHLIGHT=( + highlight --force -f -I --inline-css + -s edit-gedit -O xhtml + -t "${TABSTOP}" -S "${EXTENSION}" +) case "${CGIT_REPO_NAME}" in - *bbs|maple3-itoc) - /usr/bin/iconv -f Big5 -t UTF-8 | $HIGHLIGHT 2>/dev/null - ;; - *) - exec $HIGHLIGHT 2>/dev/null - ;; + *bbs|maple3-itoc) + iconv -c -f Big5 -t UTF-8 2>/dev/null | "${HIGHLIGHT[@]}" 2>/dev/null + ;; + *) + exec "${HIGHLIGHT[@]}" 2>/dev/null + ;; esac -- cgit v1.2.3