summaryrefslogtreecommitdiff
path: root/Master/tlpkg/dev/makeself-runscript.sh
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2009-09-15 09:40:04 +0000
committerNorbert Preining <preining@logic.at>2009-09-15 09:40:04 +0000
commit60d44731afa4954a7324f3bbe3e111598874afd2 (patch)
treeb44918fd5babb878b576cdf2a688af6542fcf7e8 /Master/tlpkg/dev/makeself-runscript.sh
parent568f2a84fedd5654cc87f3408d72bd32b4363df3 (diff)
move howto-translations to doc, and rename etc to dev in tlpkg
git-svn-id: svn://tug.org/texlive/trunk@15293 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/dev/makeself-runscript.sh')
-rwxr-xr-xMaster/tlpkg/dev/makeself-runscript.sh163
1 files changed, 163 insertions, 0 deletions
diff --git a/Master/tlpkg/dev/makeself-runscript.sh b/Master/tlpkg/dev/makeself-runscript.sh
new file mode 100755
index 00000000000..f1a48e59c5d
--- /dev/null
+++ b/Master/tlpkg/dev/makeself-runscript.sh
@@ -0,0 +1,163 @@
+#!/bin/sh
+# Updater for tlmgr and infrastructure on Unix.
+# Runs in unpacked archive directory.
+
+ROOT=`kpsewhich --var-value=SELFAUTOPARENT`
+
+if test -r "$ROOT/tlpkg/texlive.tlpdb"; then
+ # nothing to do here
+ answer=0
+else
+ answer=x
+ echo "No installation found, please select from the following options:"
+ echo "[1] make new installation"
+ echo "[2] enter path to an existing installation"
+ echo "[x] exit (default)"
+ echo -n "Your selection: "
+ read answer
+fi
+
+case "X$answer" in
+ X0) NEWINST=0
+ ;;
+ X1) echo -n "Enter destination folder: "
+ read newpath
+ if [ -z "$newpath" ] ; then
+ echo "No destination folder given, exiting."
+ exit 1
+ fi
+ ROOT="$newpath"
+ NEWINST=1
+ set -e
+ mkdir -p "$ROOT/tlpkg/tlpobj"
+ mkdir -p "$ROOT/bin"
+ ;;
+ X2) echo -n "Path to an existing installation: "
+ read oldpath
+ notgood=1
+ if [ -d $oldpath ] ; then
+ if [ -r "$oldpath/tlpkg/texlive.tlpdb" ] ; then
+ notgood=0;
+ fi
+ fi
+ if [ $notgood = 1 ] ; then
+ echo "Cannot find TeX Live root in $oldpath, exiting."
+ exit 1
+ fi
+ ;;
+ *) exit 0;;
+esac
+
+#
+if [ $NEWINST = 1 ] ; then
+ echo "$0: installing to $ROOT..."
+else
+ echo "$0: updating in $ROOT..."
+fi
+
+# move the architecture-specific files to the top level.
+mv ./master/bin .
+mv ./master/tlpkg/installer .
+mv ./master/tlpkg/tlpobj .
+
+# install the architecture-independent files.
+(cd master && tar cf - *) | (cd $ROOT && tar xf -)
+
+# try to get the list of installed architectures by listing the
+# directories in $ROOT/bin.
+t_objdir=$ROOT/tlpkg/tlpobj # target tlpobj directory
+t_instdir=$ROOT/tlpkg/installer # target installer dir
+
+# ensure these target directories exist.
+mkdir -p $t_instdir/lzma
+mkdir -p $t_instdir/wget
+
+# start the list of tlpobjs we will install
+tlpobjs="$t_objdir/bin-texlive.tlpobj $t_objdir/texlive.infra.tlpobj"
+
+if [ $NEWINST = 1 ] ; then
+ # use config.guess and platform code to get the current platform
+ archs=`perl installer/platform.pl installer/config.guess`
+else
+ archs=`ls -d $ROOT/bin/*`
+fi
+echo "archs = $archs"
+
+cp tlpobj/bin-texlive.tlpobj tlpobj/texlive.infra.tlpobj $t_objdir
+for a in $archs; do
+ if [ $NEWINST = 0 ] ; then
+ test -d "$a" || continue # skip any cruft files
+ b=`basename $a` # just the architecture name
+ else
+ b=$a
+ fi
+
+ cp tlpobj/bin-texlive.$b.tlpobj tlpobj/texlive.infra.$b.tlpobj $t_objdir
+ # add the tlpobjs for this platform t the list.
+ tlpobjs="$tlpobjs $t_objdir/bin-texlive.$b.tlpobj"
+ tlpobjs="$tlpobjs $t_objdir/texlive.infra.$b.tlpobj"
+
+ # install the bin dir for this platform.
+ (cd bin && tar cf - $b) | (cd $ROOT/bin && tar xf -)
+
+ # copy the installer binaries.
+ cp installer/lzma/lzmadec.$b $t_instdir/lzma/
+ cp installer/lzma/lzma.$b $t_instdir/lzma/
+ test -r installer/wget/wget.$b \
+ && cp installer/wget/wget.$b $t_instdir/wget
+done
+
+# move the architecture-specific files back to the right place
+mv bin ./master/
+mv installer ./master/tlpkg/
+mv tlpobj ./master/tlpkg/
+
+#
+if [ $NEWINST = 1 ] ; then
+ # if we are installing a new we have to create a minimal tlpdb
+ echo "name 00texlive-installation.config
+category TLCore
+depend platform:$archs
+depend location:http://mirror.ctan.org/systems/texlive/tlnet/2008
+depend opt_paper:a4
+depend opt_create_formats:0
+depend opt_create_symlinks:0
+depend opt_sys_bin:/usr/local/bin
+depend opt_sys_info:/usr/local/info
+depend opt_sys_man:/usr/local/man
+depend opt_install_docfiles:1
+depend opt_install_srcfiles:1
+depend available_architectures:$archs
+" > $ROOT/tlpkg/texlive.tlpdb
+fi
+
+# invoke secret tlmgr action with the tlpobjs we found.
+# Hopefully the result will be a clean tlpdb state.
+if [ $NEWINST = 1 ] ; then
+ export PATH="$ROOT/bin/$archs:$PATH"
+ echo "PATH = $PATH\n";
+fi
+tlmgr -v _include_tlpobj $tlpobjs
+
+if [ $NEWINST = 1 ] ; then
+ mkdir -p $ROOT/texmf-config/web2c
+ mkdir -p $ROOT/texmf-var/tex/generic/config
+ mkdir -p $ROOT/texmf-var/web2c
+ tlmgr option location /var/www/norbert/tlnet/2008
+ tlmgr install bin-kpathsea
+ tlmgr install hyphen-base
+ tlmgr install bin-tetex
+ tlmgr install bin-texconfig
+ tlmgr generate updmap
+ tlmgr generate language
+ tlmgr generate fmtutil
+ mktexlsr
+ updmap-sys
+ fmtutil-sys --all # should not do anything!
+ #
+ # should we install collection-basic now???
+ # otherwise we don't have pdftex etc etc?!?!
+ #tlmgr install collection-basic
+fi
+echo "$0: done."
+