iankelling.org
/
git
/
iankelling.org
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update social media
[iankelling.org]
/
setup.sh
diff --git
a/setup.sh
b/setup.sh
index 5aaf019c160b1f6d36124994d4a6c114fb949648..5452793a6a3cce6094d307773de33ab55c8297c7 100755
(executable)
--- a/
setup.sh
+++ b/
setup.sh
@@
-14,40
+14,42
@@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# 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
+source /a/bin/errhandle/err
usage() {
usage() {
-
cat <<EOF
-Usage: ${0##*/} [OPTIONS] [DOMAIN_NAME]
+ cat <<EOF
+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.
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
EOF
-p PORT Apache port, default is 443.
-h|--help Print help and exit.
Note: Uses GNU getopt options parsing style
EOF
-
exit $1
+ exit $1
}
##### begin command line parsing ########
}
##### begin command line parsing ########
+
port=443
port=443
-temp=$(getopt -l help, p:h "$@") || usage 1
+temp=$(getopt -l help,
s
p:h "$@") || usage 1
eval set -- "$temp"
while true; do
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 ;;
- esac
+ case $1 in
+ -s) allow_symlinks_arg=-s; shift ;;
+ -p) port=$2; shift 2 ;;
+ -h|--help) usage ;;
+ --) shift; break ;;
+ *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+ esac
done
##### end command line parsing ########
done
##### end command line parsing ########
@@
-57,42
+59,45
@@
script_dir=${x%/*}
cd $script_dir
domain=${1:-iankelling.org} # use argument for testing site
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
gitroot=/a/bin/githtml
if [[ $EUID != 0 ]]; then
-
s=sudo
+ s=sudo
fi
deb8=false
if grep -xFq 'VERSION_ID="8"' /etc/os-release; then
fi
deb8=false
if grep -xFq 'VERSION_ID="8"' /etc/os-release; then
-
deb8=true
+ deb8=true
fi
shopt -s extglob
type -P a2enmod &>/dev/null || $s apt-get -y install apache2
type -P sqlite3 &>/dev/null || $s apt-get -y install sqlite3
fi
shopt -s extglob
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=(
pkgs=(
-
# build.rb dependencies
-
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
+ # build.rb dependencies
+ 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
)
if $deb8; then
)
if $deb8; then
-
pkgs+=(build-essential ruby-dev)
+ pkgs+=(build-essential ruby-dev)
else
else
-
pkgs+=(ruby-redcarpet)
+ pkgs+=(ruby-redcarpet)
fi
fi
-
-
$s apt-get -y install
${pkgs[@]}
+source /a/bin/distro-functions/src/package-manager-abstractions
+
pi
${pkgs[@]}
if $deb8; then
if $deb8; then
-
sudo gem install redcarpet
+ sudo gem install redcarpet
fi
chmod og+x _site/on2vote/vote.py
fi
chmod og+x _site/on2vote/vote.py
@@
-128,15
+133,17
@@
our \$site_footer = '$PWD/_site/gitweb-footer.html';
push @stylesheets, "/css/gitweb-site.css";
our \$favicon = '/assets/favicon.png';
# default is 25, cuts off descriptions.
push @stylesheets, "/css/gitweb-site.css";
our \$favicon = '/assets/favicon.png';
# default is 25, cuts off descriptions.
-our \$projects_list_description_width =
4
0;
+our \$projects_list_description_width =
5
0;
# 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;
# 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
EOF
-
apache-site -p $port -
$domain <<EOF
+
web-conf $allow_symlinks_arg $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
# to run python script on my site:
<Directory /var/www/$domain/html/on2vote>
# to run python scripts with cgi