diff options
author | jahoti <jahoti@tilde.team> | 2021-10-10 00:00:00 +0000 |
---|---|---|
committer | jahoti <jahoti@tilde.team> | 2021-10-10 00:00:00 +0000 |
commit | 4320edc924a303ce0cab0000a5f16f045a3822df (patch) | |
tree | 29928f4d71892654d0791c06bd79696e434f566f /configure | |
parent | 5285b0923cd601e631bf9600f8b3f005c15287c4 (diff) | |
download | browser-extension-4320edc924a303ce0cab0000a5f16f045a3822df.tar.gz browser-extension-4320edc924a303ce0cab0000a5f16f045a3822df.zip |
Add a configuration system
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..3e12cbb --- /dev/null +++ b/configure @@ -0,0 +1,77 @@ +#!/bin/sh + +# This file is part of Haketilo +# +# Copyright (C) 2021, jahoti +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the CC0 1.0 Universal License as published by +# the Creative Commons Corporation. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# CC0 1.0 Universal License for more details. + +set -e + +SRCDIR='' +TARGET='' + +# Parse command line options +while [ "x$1" != x ]; do + case "$1" in + --srcdir=*) SRCDIR="$(echo "$1" | cut -c 10-)";; + --srcdir) SRCDIR="$2"; shift;; + "UPDATE_URL"=*) UPDATE_URL="$(echo "$1" | cut -c 12-)";; + --host=*) TARGET="$(echo "$1" | cut -c 8-)";; + --host) TARGET="$2"; shift;; + mozilla | chromium | all) TARGET=$1;; + *) echo Ignoring option "'$1'";; + esac + shift +done + +# Autodetect srcdir +if [ "x$SRCDIR" = x ]; then + SRCDIR=.. + if [ -f manifest.json -a -f write_makefile.sh]; then + SRCDIR=. + fi +fi + +# Check srcdir +if [ ! -f "$SRCDIR"/manifest.json ]; then + echo Invalid source directory "'$SRCDIR'": missing manifest.json >&2 + exit 1 +elif [ ! -f "$SRCDIR"/write_makefile.sh ]; then + echo Invalid source directory "'$SRCDIR'": missing write_makefile.sh >&2 + exit 1 +fi + +# TODO: automate target detection + +# Standardize and check browser names +case "${TARGET:-all}" in + mozilla) TARGET=mozilla;; + chromium) TARGET=chromium;; + all) TARGET=all;; + *) echo Invalid target "'$1'" >&2; exit 2;; +esac + +# Write record.conf +echo UPDATE_URL = "$UPDATE_URL" > record.conf +echo default_target = "$TARGET" >> record.conf +echo srcdir = "$SRCDIR" >> record.conf + + +# Prepare environment for and run write_makefile.sh (as config.status) +if [ ! -e Makefile.in ]; then + cp "$SRCDIR"/Makefile.in . +fi + +if [ ! -e config.status ]; then + cp "$SRCDIR"/write_makefile.sh config.status +fi + +./config.status |