summaryrefslogtreecommitdiff
path: root/Master/tl-portable.sh
blob: f06a115840f71db74cd8d5dadeb10224d2aec535 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#! /bin/sh
# Copyright 2008 Siep Kroonenberg.
# You may freely use, modify and/or distribute this file.

#calculate TeXLive root
#it appears that dirname isn't always available
TEXDIR0=$0
TEXDIR=${TEXDIR0%/*}
if test "$TEXDIR" = "$TEXDIR0"; then
  TEXDIR="."
fi
unset TEXDIR0

dirsave=`pwd`
cd $TEXDIR
TEXDIR=`pwd`
export TEXDIR
cd $dirsave

# Test whether the TeXLive directory is writable.  We need an actual
# write test, because network drives aren't always identified
# correctly.  We accept negatives at face value.

if test -w $TEXDIR; then
# make sure $TEXDIR is really writable
testfile=1
  while test -e $TEXDIR/$testfile
    do testfile=`expr $testfile + 1`
  done
  echo Testing whether $TEXDIR is writable...
  touch $TEXDIR/$testfile 2>/dev/null
  if test -e $TEXDIR/$testfile; then
    rm $TEXDIR/$testfile
    echo $TEXDIR is writable.
    tlwrite=$TEXDIR
  else
    echo $TEXDIR is not writable.
    tlwrite=$HOME/.texlive2008
  fi
else
  tlwrite=$HOME/.texlive2008
fi
export tlwrite
echo Using $tlwrite for generated files.

# Use $TEXMFHOME for private data,
# $TEXMFLOCAL for department- or workgroup data.
# It is allright if $TEXMFLOCAL does not exist.

TEXMFSYSVAR=$tlwrite/texmf-var
if test -d $TEXDIR/texmf-var; then
  TEXMFSYSVAR=$TEXDIR/texmf-var
fi
export TEXMFSYSVAR
TEXMFSYSCONFIG=$tlwrite/texmf-config
if test -f $TEXDIR/texmf-config; then
  TEXMFSYSCONFIG=$TEXDIR/texmf-config
fi
export TEXMFSYSCONFIG
TEXMFMAIN=$TEXDIR/texmf
export TEXMFMAIN
TEXMFDIST=$TEXDIR/texmf-dist
export TEXMFDIST
TEXMFLOCAL=$TEXDIR/texmf-local
export TEXMFLOCAL
TEXMFHOME=$tlwrite/texmf-home
export TEXMFHOME
TEXMFVAR=$tlwrite/texmf-var
export TEXMFVAR
TEXMFCONFIG=$tlwrite/texmf-config
export TEXMFCONFIG

platform=`$TEXDIR/install-tl.pl --print-arch`

if test "$platform" = ""; then
  echo 'Platform unsupported'
  exit 1
elif test ! -d $TEXDIR/bin/$platform; then
  echo 'Platform unsupported'
  exit 1
fi

if $TEXDIR/install-tl.pl --portable; then :; else
  echo Initialization of TeXLive failed!
  exit 1
fi

# Try to block initialization scripts.
# Set custom prompt for secondary shell, but
# I know of no good way to do this for the C shell.

ENV=/dev/null
export ENV
PATH=$TEXDIR/bin/$platform:$PATH
export PATH
if test "$SHELL" = /bin/bash; then
  PS1='TL \w\$ '
  export PS1
  exec $SHELL --norc -i
elif test "$SHELL" = /bin/zsh; then
  PS1='TL %d%% '
  export PS1
  exec $SHELL -f -i
elif test "$SHELL" = /bin/csh; then
  exec $SHELL -f -i
elif test "$SHELL" = /bin/tcsh; then
  exec $SHELL -f -i
else
  PS1='TL $PWD\$ '
  export PS1
  exec $SHELL -f -i
fi