diff options
author | Norbert Preining <preining@logic.at> | 2009-09-15 09:40:04 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2009-09-15 09:40:04 +0000 |
commit | 60d44731afa4954a7324f3bbe3e111598874afd2 (patch) | |
tree | b44918fd5babb878b576cdf2a688af6542fcf7e8 /Master/tlpkg/dev/makeself-runscript.sh | |
parent | 568f2a84fedd5654cc87f3408d72bd32b4363df3 (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-x | Master/tlpkg/dev/makeself-runscript.sh | 163 |
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." + |