diff options
author | Norbert Preining <preining@logic.at> | 2008-01-07 21:54:37 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2008-01-07 21:54:37 +0000 |
commit | c04ded8c35607a5c0dc6e235484799eb1382d717 (patch) | |
tree | 4491e8a363816620761dbbb9d84f59f4b7c47de5 | |
parent | 74fdfb88a35186adb7c5da8e601989a60c21777a (diff) |
updates to install-tl.pl for texlua support
git-svn-id: svn://tug.org/texlive/trunk@6127 c570f23f-e606-0410-a88d-b1316a301751
-rwxr-xr-x | Master/install-tl.pl | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/Master/install-tl.pl b/Master/install-tl.pl index fccee377bf2..1df2cdb1132 100755 --- a/Master/install-tl.pl +++ b/Master/install-tl.pl @@ -55,6 +55,8 @@ our $trynet=0; # # for now it is my testing archive on tug.org #$::texlive_url = 'http://tug.org/svn/texlive/trunk/Master'; +# for my own testing in the virtual machine +#$::texlive_url = 'http://10.0.2.2/norbert/tltesting'; $::texlive_url = 'http://tug.org/~preining/tltesting'; # the default scheme to be installed my $default_scheme='scheme-full'; @@ -66,6 +68,8 @@ our @collections_lang_doc; # The maximum number of binary systems on the CD. This number must be # smaller than the number of binaries available from the network. our $max_bins_on_CD=7; +# for win dealing +our $Registry; # The global variable %vars is an associative list which contains all # variables and their values which can be changed by the user. # needs to be our since TeXLive::TLUtils uses it @@ -191,11 +195,10 @@ if ($opt_profile eq "") { calc_depends(); prepare_installation(); do_install_packages(); -do_postinst_stuff(); - if (win32()) { do_win_registry_magic(); } +do_postinst_stuff(); dump_vars("$system_tmpdir/texlive.vars"); # if we installed from a profile we don't need to write it out @@ -616,8 +619,16 @@ sub do_postinst_stuff { `generate-language`; } `mktexlsr $vars{'TEXDIR'}/texmf-dist $vars{'TEXDIR'}/texmf $vars{'TEXDIR'}/texmf-local`; - my $updmap = (win32() ? "$perlint $vars{'TEXDIR'}/bin/win32/updmap-sys.pl" : "updmap-sys"); - `$updmap --nohash`; + # my $updmap = (win32() ? "$perlint $vars{'TEXDIR'}/bin/win32/updmap-sys.pl" : "updmap-sys"); + # `$updmap --nohash`; + # we hope that the updmap-sys.texlua is executed ... + # but to be sure we set the PATHEXT ... + if (win32()) { + my $pathext = $ENV{'PATHEXT'}; + $pathext .= ";.texlua"; + $ENV{'PATHEXT'} = $pathext; + } + `updmap-sys --nohash`; `mktexlsr $vars{'TEXMFSYSVAR'}`; # old installer: @@ -668,18 +679,20 @@ sub do_texmf_cnf { # register texlua handlers etc etc sub do_win_registry_magic { # we are called under if (win32()) !! + my $winpath = "$vars{'TEXDIR'}/bin/win32"; + $winpath =~ s!/!\\!g; if ($vars{'win-admin'}) { # generate a .texlua association and link it to texlua.exe, which should # be in the path! - my $classes = $Registry->Open( "Classes/", {Access=>KEY_ALL_ACCESS,Delimiter=>"/"}); + my $classes = $Registry->Open( "Classes/", {Access=>'KEY_ALL_ACCESS',Delimiter=>"/"}); $classes->CreateKey(".texlua")->SetValue("","script.texlua"); my $scriptkey = $classes->CreateKey("script.texlua"); $scriptkey->SetValue("", "TeXLua Script"); - $scriptkey->CreateKey("Shell/Open/Command/")->SetValue("","texlua.exe %1"); + $scriptkey->CreateKey("Shell/Open/Command/")->SetValue("","$winpath\\texlua.exe %1 %*"); # PATHEXT editing # should this be currentcontrolset or ControlSet001 ???? - my $winenv = $Registry->Open( "LMachine/SYSTEM/ControlSet001/Control/Session Manager/Environment/", {Access=>KEY_ALL_ACCESS,Delimiter=>"/"}); + my $winenv = $Registry->Open( "LMachine/SYSTEM/ControlSet001/Control/Session Manager/Environment/", {Access=>'KEY_ALL_ACCESS',Delimiter=>"/"}); my $pathext = $winenv->GetValue("PATHEXT"); my $found = 0; foreach (split(/;/,$pathext)) { @@ -690,9 +703,11 @@ sub do_win_registry_magic { } # add the win32 dir to the PATH - warn "Missing: extend PATH to include TEXDIR/bin/win32\n"; + my $wpath = $winenv->GetValue("Path"); + $wpath .= ";$winpath"; + $winenv->SetValue("Path","$wpath"); } else { - warn "Don't know what to do if a non admin user installs texlive on win32\n!; + warn "Don't know what to do if a non admin user installs texlive on win32\n!"; } } __END__ |