X-Git-Url: https://iankelling.org/git/?p=iankelling.org;a=blobdiff_plain;f=setup.sh;h=f081135e3b0f253544d1f2a1981cb939ca6cfd09;hp=66953c5b38da72a0605117976f1456b3eb0be21b;hb=HEAD;hpb=3c09af9cc854c716d9f772d1c8c1e568cacc92b9 diff --git a/setup.sh b/setup.sh index 66953c5..f081135 100755 --- a/setup.sh +++ b/setup.sh @@ -1,4 +1,4 @@ -#!/bin/bash -l +#!/bin/bash # Copyright (C) 2016 Ian Kelling # This program is free software: you can redistribute it and/or modify @@ -14,33 +14,92 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -# This script depends on a few other git repos of mine, such as -# distro-functions, basic-https-conf, acme-tiny-wrapper +set -e; . /usr/local/lib/bash-bear; set +e -set -eE -o pipefail -trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +usage() { + cat </dev/null || pi apache2 +type -P a2enmod &>/dev/null || $s apt-get -y install apache2 +type -P sqlite3 &>/dev/null || $s apt-get -y install sqlite3 +type -P ffmpeg &>/dev/null || $s apt-get -y install ffmpeg -acme-tiny-wrapper $domain pkgs=( - # build.rb dependencies - ruby-pygments.rb ruby-safe-yaml ruby-redcarpet - # python pkgs used for o(n^2) voting blog entry - python-bcrypt python-passlib - # gitweb pkgs - gitweb highlight + # build.rb dependencies + ruby-pygments.rb ruby-safe-yaml ruby-sass + # python pkgs used for o(n^2) voting blog entry + # # commented out, needs update to python3 + #python-bcrypt python-passlib + # gitweb pkgs + gitweb highlight ) +if $deb8; then + pkgs+=(build-essential ruby-dev) +else + pkgs+=(ruby-redcarpet) +fi +source /a/bin/distro-functions/src/package-manager-abstractions pi ${pkgs[@]} +if $deb8; then + sudo gem install redcarpet +fi chmod og+x _site/on2vote/vote.py @@ -50,11 +109,11 @@ chmod og+x _site/on2vote/vote.py # It's example apache config seems to say we can use cgi or cgid, # and googling cgid it seems a newer faster alternative. I also # depend on this in my o(n^2) python script. -sudo a2enmod cgid +$s a2enmod cgid # additional settings from browsing https://git-scm.com/docs/gitweb.conf -s dd of=/etc/gitweb.conf < # to run python scripts with cgi @@ -92,6 +152,11 @@ apache-site - $domain < + + Options Indexes + + + Options +ExecCGI SetHandler cgi-script @@ -146,43 +211,9 @@ Alias /git /usr/share/gitweb EOF -# my projects all have README or --help with a short single line -# description which I parse and put into the gitweb description. -_git_desc_readme() { - while read -r line; do - [[ $line ]] || continue - if echo "$line" | grep "^ *[#*]" &>/dev/null; then - continue - fi - echo "$line" > .git/description - break - done < README* -} -gitweb_descriptions() { - for d in $gitroot/*; do - d=$(readlink -f $d) - cd $d/.. - e ${PWD##*/} - shopt -s nullglob - f=(!(LICENSE|COPYING|README|.git)) - shopt -u nullglob - if [[ ${#f[@]} == 1 && ! -d $f ]]; then - if [[ ! -x $f ]]; then - if [[ $f == *-function ]]; then - ${f%-function} --help | sed -n '2p' > .git/description - else - _git_desc_readme - fi - else - $f --help | sed -n '2p' > .git/description - fi - else - _git_desc_readme - fi - done -} -gitweb_descriptions +$script_dir/gitweb-descriptions $gitroot $script_dir/build.rb -s lnf -T $script_dir/_site /var/www/$domain/html +$s rm -rf /var/www/$domain/html +$s ln -sT $script_dir/_site /var/www/$domain/html