summaryrefslogtreecommitdiff
path: root/Master/bin/win32/dviout.vbs
blob: 0d76d711211478a24b1de136be8348ed94bd015c (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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
' Call dviout with an optional dvi-file parameter
' and font search configuration parameters.

option explicit
On Error Resume Next

dim oWsh, oEnv, oFS, oArgs, oExec, sTmp, bFirst
Dim sTL, oTL, sGS, sCmd, oTmp, i, s

set oWsh = wscript.createobject( "wscript.Shell" )
Set oArgs = wscript.Arguments
Set oEnv = oWsh.Environment( "PROCESS" )
Set oFS = CreateObject("Scripting.FileSystemObject")

s = Left (wscript.version, 3)
s = replace (s, ".", "")
i = CInt(s)
If i < 56 Then
  MsgBox "Need VBScript 5.6 or later. Aborting...", vbOKOnly+vbCritical, "Error"
  Wscript.Quit
Else
  sTmp = ""
  ' ask kpathsea
  Set oExec = oWsh.Exec("kpsewhich -var-value=SELFAUTOPARENT")
  sTmp = oExec.StdOut.ReadLine
  Err.clear()
  If sTmp <> "" then
    sTL = replace(sTmp, "/", "\")
  End If
End If
If sTL = "" Then
  MsgBox "TeX Live not found; aborting...", vbOKOnly+vbCritical, "Error"
  wscript.quit
End If
If InStr(sTL, " ") <> 0 Then
  Set oTL = oFS.GetFolder(sTL)
  sTL = oTL.ShortPath
End If

'strip trailing "\"
If Right(sTL,1) = "\" Then
  sTL = Left(sTL,Len(sTL)-1)
End If

' Ghostscript environment settings
sGS = sTL & "\tlpkg\tlgs"
oEnv("PATH") = sGS & "\bin;" & oEnv("PATH")
oEnv("GS_LIB") = sGS & "\fonts;" & sGS & "\lib;" & sGS & "\Resource"

sCmd = sTL & "\tlpkg\dviout\dviout.exe -TEXROOT="

'add font trees to command-Line

'first make sure %TEXMFVAR%\fonts exists
sTmp = ""
' ask kpathsea
Set oExec = oWsh.Exec("kpsewhich -var-value=TEXMFVAR")
sTmp = oExec.StdOut.ReadLine
If Not oFS.FolderExists(sTmp) Then
  s = oFS.GetParentFolderName(sTmp)
  If Not oFS.FolderExists(s) Then
    Err.clear()
    oFS.CreateFolder(s)
    If Not oFS.FolderExists(s) Then
      MsgBox "No place to put bitmaps; aborting...", _
             vbOKOnly+vbCritical, "Error"
      wscript.quit
    End If
  End If
  oFS.CreateFolder(sTmp)
  If Not oFS.FolderExists(sTmp) Then
    MsgBox "No place to put bitmaps; aborting...", _
           vbOKOnly+vbCritical, "Error"
    wscript.quit
  End If
End If
If Not oFS.FolderExists(sTmp & "\fonts") Then
  Err.clear()
  oFS.CreateFolder(sTmp & "\fonts")
  If Not oFS.FolderExists(sTmp & "\fonts") Then
    MsgBox "No place to put bitmaps; aborting...", _
           vbOKOnly+vbCritical, "Error"
    wscript.quit
  End If
End If


Set oExec = oWsh.Exec("kpsewhich -show-path=tfm")
sTmp = oExec.StdOut.ReadLine
bFirst = True
For Each s in Split(sTmp, ";", -1, 1)
  s = Trim(s)
  If s<>"." Then
    If InStr(s, "!!")=1 Then
      s = Mid(s, 3)
    End If
    i = InStr(s, "/fonts/tfm")
    If i<>0 then
      s = Mid(s, 1, i+5)
    Else
      s=""
    End If
    s = Trim(s)
    If s<>"" then
      s = replace(s, "/", "\")
      If oFS.FolderExists(s) Then
        If InStr(s," ")<>0 Then
          Set oTmp = oFS.GetFolder(s)
          s = oTmp.ShortPath
        End If
        If Not bFirst Then
          sCmd=sCmd & ";"
        Else
          bfirst=False
        End If
        sCmd = sCmd & s
      End If
    End If
  End If
Next
sCmd = sCmd & " -TEXPK=""^r\pk\\^s.^dpk;^r\tfm\\^s^tfm;" & _
  "^r\vf\\^s.vf;^r\ovf\\^s.ovf;^r\tfm\\^s.tfm"""

' assume argument either short or already quoted
If (oArgs.length > 0) Then
  For i = 0 To (oArgs.length - 1) Step 1
    sCmd = sCmd & " " & oArgs(i)
  Next
End If

' 2nd arg 1: normal window
oWsh.run sCmd, 1
'wscript.echo sCmd