diff --git a/gbootroot b/gbootroot index 2a8f699..fc484f0 100755 --- a/gbootroot +++ b/gbootroot @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# gBootRoot Copyright (C) 2000 +# gBootRoot Copyright (C) 2000, 2001 # Lead Developer and Project Coordinator # Jonathan Rosenbaum # @@ -121,6 +121,8 @@ my $home_uml_kernel = "$home/uml_kernel/"; my $home_yard = "$home/yard"; my $template_dir = "$home_yard/templates/"; my $home_yard_replacements = "$home_yard/replacements"; +my $global_yard_replacements = "/usr/share/gbootroot/yard/replacements"; +my $global_yard_templates = "/usr/share/gbootroot/yard/templates"; my $initrd; my $compress; @@ -173,7 +175,7 @@ my $obj_count_root = 0; my ($lib_strip_check,$bin_strip_check); my ($bz2_toggle,$gz_toggle); my ($bz2_toggle_root,$gz_toggle_root,$compression_off); -my ($combo); +#my ($main::combo); made this totally global my ($adj2,$adj3); my @strings; my ($root_device,$root_filename,$method,$template,$filesystem_size, @@ -260,10 +262,21 @@ if (!-e "$home_uml_kernel/.options") { # $HOME/.gbootroot/yard/templates home_builder($template_dir); +if ( -d $global_yard_templates ) { + opendir(DIR,$global_yard_templates) if -d $template_dir; + my @templates = grep { m,\.yard$, } readdir(DIR); + closedir(DIR); + foreach ( @templates ) { + if (!-e "$template_dir/$_" && !-l "$template_dir/$_") { + symlink_builder("$global_yard_templates/$_","$template_dir/$_"); + } + } +} # $HOME/.gbootroot/yard/replacements home_builder($home_yard_replacements); + # Basically so different users get the same things in # their personal directories. sub symlink_builder { @@ -354,13 +367,14 @@ elsif (Gtk->minor_version < 2) { sub et { error_window("gBootRoot is presently being developed with gtk-perl" . " version $gtk_perl_version.\nYou are using a" . - " version of gtk-perl < 0.7002. You may still be able\n" . + " version of gtk-perl < $gtk_perl_version." . + " You may still be able\n" . " to use this program, but you may encounter problems." . " See the FAQ\nfor places to get a newer gtk-perl version." . " \n\nThe most common error reported:\n\"Can't locate" . " object method\""); #,"center"); - print "Using a version of gtk-perl < 0.7002\n"; + print "Using a version of gtk-perl < $gtk_perl_version\n"; } my $window = Gtk::Window->new("toplevel"); @@ -965,7 +979,7 @@ sub advanced_root_section { opendir(DIR,$template_dir) if -d $template_dir; @strings = grep { m,\.yard$, } readdir(DIR); closedir(DIR); - $combo->set_popdown_strings( @strings ) if @strings; + $main::combo->set_popdown_strings( @strings ) if @strings; } ); $ear4->set_text($entry_advanced[6]) if $entry_advanced[6]; @@ -986,26 +1000,26 @@ sub advanced_root_section { # Template # $::contents_file label_advanced("Template:",0,1,7,8,$table_advanced_root); - $combo = Gtk::Combo->new(); - $combo->entry->set_text($entry_advanced[7]) if $entry_advanced[7]; + $main::combo = Gtk::Combo->new(); + $main::combo->entry->set_text($entry_advanced[7]) if $entry_advanced[7]; #$button_count_root_open = 1 + $button_count_root_open; #print $button_count_root_open; #if ($button_count_root_open > 1) { - # $combo->set_popdown_strings( @strings ) + # $main::combo->set_popdown_strings( @strings ) # if $entry_advanced[7] ne ""; #} - $tooltips->set_tip( Gtk::Combo::entry($combo), + $tooltips->set_tip( Gtk::Combo::entry($main::combo), "Choose a Template for the Method.", "" ); - $entry_advanced[7] = $combo->entry->get_text(); # nothing selected - $combo->entry->signal_connect("changed", sub { - $entry_advanced[7] = $combo->entry->get_text(); + $entry_advanced[7] = $main::combo->entry->get_text(); # nothing selected + $main::combo->entry->signal_connect("changed", sub { + $entry_advanced[7] = $main::combo->entry->get_text(); $ars->{template} = $entry_advanced[7]; ars($ars); } ); - $table_advanced_root->attach($combo,1,3,7,8, + $table_advanced_root->attach($main::combo,1,3,7,8, ['expand','fill'],['fill','shrink'],0,0); - show $combo; + show $main::combo; #_______________________________________ # Generate - UML - Accept buttons @@ -1380,7 +1394,9 @@ sub Generate { if ($method eq "yard") { - yard(); + if (!$main::yard_window) { + yard(); + } }