diff options
Diffstat (limited to 'perl-install/standalone/drakhelp')
-rwxr-xr-x[-rw-r--r--] | perl-install/standalone/drakhelp | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/perl-install/standalone/drakhelp b/perl-install/standalone/drakhelp index 7ff26e0a6..c2b46979a 100644..100755 --- a/perl-install/standalone/drakhelp +++ b/perl-install/standalone/drakhelp @@ -9,39 +9,46 @@ use standalone; #- warning, standalone must be loaded very first, for 'expla use interactive; use common; use any; -use ctxhelp; +eval { require ctxhelp }; use log; -sub usage { +sub usage() { print STDERR N(" drakhelp 0.1 -Copyright (C) 2003-2004 MandrakeSoft. +Copyright (C) %s Mandriva. +Copyright (C) %s Mageia. This is free software and may be redistributed under the terms of the GNU GPL. Usage: -") . N(" --help - display this help +", '2003-2008', '2011') . N(" --help - display this help ") . N(" --id <id_label> - load the html help page which refers to id_label ") . N(" --doc <link> - link to another web page ( for WM welcome frontend) "); - exit(0) + exit(0); } my ($opt, $idlabel) = @ARGV; -@ARGV == 2 && ($opt eq '--id' || $opt eq '--doc' || $opt eq '--help') or usage(); - -my $in = interactive->vnew; -my ($lg, $instpath, $ancpath, $package) = ctxhelp::path2help($opt, $idlabel); - --e $instpath or system("/usr/sbin/drakhelp_inst $package"); --e $instpath or $in->ask_warn('Mandrake Help Center', N("%s cannot be displayed \n. No Help entry of this type\n", $instpath)); - -my $wm = any::running_window_manager(); -my %launchhelp = ( - 'kwin' => sub { system("konqueror " . $ancpath . "&") }, - 'gnome-session' => sub { system("yelp ghelp://" . $ancpath . "&") }, - 'other' => sub { my $browser = $ENV{BROWSER} || find { -x "/usr/bin/$_" } qw(mozilla konqueror galeon) or $in->ask_warn('drakhelp', N("No browser is installed on your system, Please install one if you want to browse the help system")); - log::explanations("Loading help system : $ancpath"); - system("$browser " . $ancpath . "&") - } - ); -member($wm, 'kwin', 'gnome-session') or $wm = 'other'; --e $instpath and eval { $launchhelp{$wm}->() }; +@ARGV == 2 && member($opt, qw(--id --doc --help)) or usage(); + + + +my ($instpath, $ancpath, $package) = eval { ctxhelp::path2help($opt, $idlabel) }; +if (! -e $instpath) { + system('/usr/sbin/drakhelp_inst', $package); +} + +if (! -e $instpath) { + #- trying again, asking for the english entry + ($instpath, $ancpath, my $package2) = eval { ctxhelp::path2help($opt, $idlabel, 'en') }; + if (! -e $instpath && $package ne $package2) { + system("/usr/sbin/drakhelp_inst $package2"); + } +} + +if (-f $instpath) { + local $ENV{HOME} = '/root' if !$<; + run_program::raw({ detach => 1 }, 'display_help', "file://$ancpath"); +} else { + $ugtk3::wm_icon = "help"; + my $in = interactive->vnew; + $in->ask_warn(N("%s Help Center", N("Mageia")), N("No Help entry for %s\n", $idlabel)); +} |