diff --git a/install-eggs.sh b/install-eggs.sh new file mode 100644 index 0000000..1f2c4f7 --- /dev/null +++ b/install-eggs.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# +# install-eggs.sh +# +# Local installer of CHICKEN eggs required for building. +# +# ISC License +# +# Copyright 2023 Brmlab, z.s. +# Dominik Pantůček +# +# Permission to use, copy, modify, and/or distribute this software +# for any purpose with or without fee is hereby granted, provided +# that the above copyright notice and this permission notice appear +# in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL +# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE +# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR +# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, +# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# + +# Source root directory +owd=$(pwd) +cd $(dirname "$0") +SRCDIR=$(pwd) +cd "$owd" + +# Make temporary prefix directory (eggs shared throwaway files) +TMPDIR=$(mktemp -d) + +# Installs given egg locally +chicken_install() { + echo "Installing $1 ..." + CHICKEN_INSTALL_PREFIX="$TMPDIR" \ + CHICKEN_REPOSITORY_PATH="$SRCDIR/eggs":`chicken-install -repository` \ + CHICKEN_INSTALL_REPOSITORY="$SRCDIR/eggs" \ + chicken-install "$1" 2>&1 | \ + sed -u 's/^/ /' +} + +# Removes throwaway files +chicken_cleanup() { + echo "Cleaning up ..." + rm -fr ${TMPDIR} +} + +# Always cleanup +trap chicken_cleanup INT QUIT + +# Install required eggs +chicken_install sqlite3 + +# Normal termination cleanup +chicken_cleanup diff --git a/src/Makefile b/src/Makefile index 6c15089..f4009d2 100644 --- a/src/Makefile +++ b/src/Makefile @@ -29,7 +29,7 @@ default: imports .PHONY: static static: ../hackerbase -CSC=csc +CSC=CHICKEN_REPOSITORY_PATH=../eggs csc HACKERBASE-DEPS=hackerbase.scm cal-month.import.scm \ command-line.import.scm mbase.import.scm brmember.import.scm \