updated git and svn scripts
[xrzperl.git] / diskimg-setup-grub2
blobc0c2e33c8b0b7f0ef5faf28678e34b339e83e6c8
1 #!/usr/bin/perl -w
2 ###APPNAME: diskimg-setup-grub2
3 ###APPAUTHOR: duel
4 ###APPDATE: 2008-10-07 04:15:35
5 ###APPVER: 0.1
6 ###APPDESC: setup grub2 on disk image
7 ###APPUSAGE: (diskImg file) [GrubDeviceMap]
8 ###APPEXAMPLE: diskimg-setup-grub2
9 ###APPOPTION:
10 use strict;
11 use File::Temp qw/tempfile/;
12 #ENV variable MUST be defined somewhere,
13 #FOR perl to search modules from,
14 #OR nothing will work
15 use lib $ENV{XR_PERL_MODULE_DIR};
17 use MyPlace::Script::Usage qw/help_required help_even_empty/;
18 #exit 0 if(help_required($0,@ARGV));
19 exit 0 if(help_even_empty($0,@ARGV));
21 my $diskimg=shift;
22 die("File not exist:$diskimg\n") unless(-f $diskimg);
23 my $dmap;#=shift;
24 #if($dmap && $dmap !~ m/^\s*\(?(:?hd|sd|fd)\d+$/) {
25 # unshift @ARGV,$dmap;
26 # $dmap = "";
28 $dmap="hd0" unless($dmap);
29 $dmap =~ s/^\((.*)\)$/$1/;
31 my $ddmap = $dmap;$ddmap =~ s/,.*//g;
33 my $rdev = $dmap;
34 if($rdev =~ /^hd\d+/) {
35 $rdev = "$rdev,1" unless($rdev =~ /^hd\d+\s*,\s*\d+$/);
39 my $grubsetup="/usr/sbin/grub-setup";
40 my ($fh,$mapfile)=tempfile();
41 print STDERR "($ddmap) $diskimg\n";
42 print $fh "($ddmap) $diskimg\n";
43 close $fh;
46 my @args=("-v",@ARGV);
47 #if(-f "core.img") {
48 # push @args,"-c","./core.img";
50 #elsif(-f "../../../../../myplace/emuos/bootloader/grub2.img") {
51 # push @args,"-c","../../../../../myplace/emuos/bootloader/grub2.img";
53 #push @args,"-b","./boot.img" if(-f "./boot.img");
54 push @args,("-d","/myplace/emuos/bootloader/grub2");
55 push @args,("-m",$mapfile,"-r","($rdev)");
56 #,$diskimg);
57 push @args,@ARGV,$diskimg;
58 print STDERR join(" ",$grubsetup,@args),"\n";
59 system($grubsetup,@args);
60 unlink $mapfile;