X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;ds=inline;f=setup.sh;h=ed295eb9172a36a04973c8458da522565c2a4c47;hb=refs%2Fheads%2Fr;hp=94dffe29c1f62aa8d04ec3f36c978bcd706a85bd;hpb=512e27c6bf1c40085f9fcc4c9769ef5b8ba6f4f9;p=iankelling.org
diff --git a/setup.sh b/setup.sh
index 94dffe2..ed295eb 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,86 @@
# 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 -eE -o pipefail
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-script_dir=$(readlink -f "${BASH_SOURCE%/*}")
-cd "$script_dir"
+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
-acme-tiny-wrapper $domain
pkgs=(
# build.rb dependencies
- ruby-pygments.rb ruby-safe-yaml ruby-redcarpet
+ ruby-pygments.rb ruby-safe-yaml ruby-sass
# python pkgs used for o(n^2) voting blog entry
python-bcrypt python-passlib
# gitweb pkgs
gitweb highlight
)
-pi ${pkgs[@]}
+if $deb8; then
+ pkgs+=(build-essential ruby-dev)
+else
+ pkgs+=(ruby-redcarpet)
+fi
+
+$s apt-get -y install ${pkgs[@]}
+if $deb8; then
+ sudo gem install redcarpet
+fi
chmod og+x _site/on2vote/vote.py
@@ -50,11 +103,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
@@ -145,54 +200,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*
-}
-
-dirs=()
-for d in $gitroot/*; do
- if [[ -d $d && ! -L $d ]]; then
- for sub in $d/*; do
- dirs+=($sub)
- done
- else
- dirs+=($d)
- fi
-done
-gitweb_descriptions() {
- for d in ${dirs[@]}; 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