# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# 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
usage() {
cat <<EOF
-Usage: ${0##*/} [-h|--help] [DOMAIN_NAME]
+Usage: ${0##*/} [OPTIONS] [DOMAIN_NAME] [LETSENCRYPT_EMAIL]
Setup dependencies, apache, and gitweb. Then call build.rb.
Default DOMAIN_NAME is iankelling.org. Domain is expected to resolve
so we can get a let's encrypt cert.
+This script depends on a few other git repos of mine: distro-functions
+and basic-https-conf.
+
+
+-p PORT Apache port, default is 443.
-h|--help Print help and exit.
Note: Uses GNU getopt options parsing style
##### begin command line parsing ########
-temp=$(getopt -l help, h "$@") || usage 1
+port=443
+temp=$(getopt -l help, p:h "$@") || usage 1
eval set -- "$temp"
while true; do
case $1 in
+ -p) port=$2; shift 2 ;;
-h|--help) usage ;;
--) shift; break ;;
*) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
cd $script_dir
domain=${1:-iankelling.org} # use argument for testing site
+email=$2
+if [[ $email ]]; then
+ email_arg="-e $email"
+ fi
gitroot=/a/bin/githtml
if [[ $EUID != 0 ]]; then
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-sass
push @stylesheets, "/css/gitweb-site.css";
our \$favicon = '/assets/favicon.png';
# default is 25, cuts off descriptions.
-our \$projects_list_description_width = 40;
+our \$projects_list_description_width = 50;
# a bit superflous since they are all me
our \$omit_owner = true;
# highlight scripts with no extension, uses a patch
# that is on it's way upstream.
our \$highlight_force = 1;
+our \$home_text = "$script_dir/_site/gitweb_home.html";
+our \$projects_list_group_categories = 1;
EOF
-apache-site - $domain <<EOF
+web-conf $email_arg -p $port - apache2 $domain <<EOF
# to run python script on my site:
<Directory /var/www/$domain/html/on2vote>
# to run python scripts with cgi