summaryrefslogtreecommitdiffstats
path: root/build_tools/larch8/larch-setup
diff options
context:
space:
mode:
Diffstat (limited to 'build_tools/larch8/larch-setup')
-rw-r--r--build_tools/larch8/larch-setup127
1 files changed, 127 insertions, 0 deletions
diff --git a/build_tools/larch8/larch-setup b/build_tools/larch8/larch-setup
new file mode 100644
index 0000000..55d7ccd
--- /dev/null
+++ b/build_tools/larch8/larch-setup
@@ -0,0 +1,127 @@
+#! /bin/bash
+#
+# larch-setup
+#
+# Author: Michael Towers <gradgrind[at]online[dot]de>
+#
+# This file is part of the larch project.
+#
+# larch is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# larch 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
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with larch; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#----------------------------------------------------------------------------
+# 2010.10.02
+
+REPO="ftp://ftp.berlios.de/pub/larch/larch8/i686"
+#REPO=file://$( readlink -f larchrepo )
+
+if [ "$1" = "-h" ]; then
+ echo "larch-setup -h"
+ echo " # Display this information."
+ echo "larch-setup"
+ echo " # Set up a larch build environment in the current directory."
+ echo
+ echo "This script unpacks larch, so that it"
+ echo "can be run from this directory, without installing."
+ echo "It also generates appropriate symlinks."
+ echo "Also the 'liblarch' package will be downloaded and unpacked."
+ echo
+#TODO:
+ echo "NEEDS UPDATING:"
+ echo "If there is no pacman in the PATH, a package containing a"
+ echo "pacman binary and the libraries and configuration files it needs"
+ echo "will be downloaded from the larch site and unpacked in the"
+ echo" larch/run directory."
+ echo "Also repo-add is extracted there and a pacman.conf is generated in"
+ echo "the current directory, presenting a dialog for choosing the package"
+ echo "server."
+ echo "You can use an existing pacman.conf by placing this in the current"
+ echo "directory."
+ echo
+ exit
+fi
+
+# Get path to this directory, via the location of this script
+fullpath="$( readlink -f $0 )"
+scriptdir="$( dirname ${fullpath} )"
+
+# Just in case ...
+cd ${scriptdir}
+
+if [ -d larch0 ]; then
+ echo "ERROR: larch0 directory exists already"
+ exit 1
+fi
+
+fetch ()
+{
+ if [ -n "$( echo ${REPO} | grep "file://" )" ]; then
+ base="$( echo ${REPO} | sed "s|file://||" )"
+ cp ${base}/$1 .
+ else
+ wget ${REPO}/$1
+ fi
+}
+
+rm -f *.pkg.tar.gz
+rm -rf db
+mkdir db
+cd db
+fetch larch.db.tar.gz
+tar -xzf larch.db.tar.gz
+cd ${scriptdir}
+d=$( ls db | grep "^larch-8" )
+larchpak=$( grep -A 1 -e "%FILENAME%" db/${d}/desc | grep -v "%" )
+fetch ${larchpak}
+d=$( ls db | grep "^liblarch-" )
+larchpak=$( grep -A 1 -e "%FILENAME%" db/${d}/desc | grep -v "%" )
+fetch ${larchpak}
+
+rm -rf tmp
+mkdir tmp
+tar -xzf larch-8*.pkg.tar.gz -C tmp
+
+if [ "$1" != "-p" ]; then
+ d=$( ls db | grep "^larch-profiles-" )
+ larchpak=$( grep -A 1 -e "%FILENAME%" db/${d}/desc | grep -v "%" )
+ fetch ${larchpak}
+ tar -xzf larch-profiles-*.pkg.tar.gz -C tmp
+fi
+
+rm -rf db
+mv tmp/opt/apps/larch larch0
+tar -xzf liblarch-*.pkg.tar.gz -C tmp
+mv tmp/opt/apps/liblarch .
+
+for s in $( ls tmp/usr/bin ); do
+ p=$( readlink tmp/usr/bin/${s} )
+ d=$( dirname ${p} )
+ ln -s larch0/$( basename ${d} )/$( basename ${p}) ${s}
+done
+rm -rf tmp
+
+# Check that pacman is available.
+if ! which pacman &>/dev/null; then
+ # Fetch the pacman package from the larch site
+ fetch pacman-allin.tar.gz
+ if ! [ -f pacman-allin.tar.gz ]; then
+ echo "ERROR: couldn't fetch pacman package"
+ exit 1
+ fi
+ # Extract the package
+ tar -xzf pacman-allin.tar.gz
+ cp -a pacman-allin/* larch0
+ rm -rf pacman-allin
+fi
+