diff options
Diffstat (limited to 'Mac/OSX/Dist/makedmg')
-rwxr-xr-x | Mac/OSX/Dist/makedmg | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/Mac/OSX/Dist/makedmg b/Mac/OSX/Dist/makedmg deleted file mode 100755 index de13ef93bb..0000000000 --- a/Mac/OSX/Dist/makedmg +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/perl -w -# -# make disk image from folder -# -# usage: makedmg src dst name -# -# Donated by Frank Vercruesse - - -$hdiUtilExec = "/usr/bin/hdiutil"; -$hdiDrvExec = "/usr/bin/hdid"; -$newfsExec = "/sbin/newfs_hfs"; -$duExec = "/usr/bin/du"; -$dittoExec = "/usr/bin/ditto"; - -if ( $#ARGV != 2 ) { - die "Wrong number of arguments.\nUsage: makedmg src dst name\n"; -} - -&make_dmg( $ARGV[0], $ARGV[1], $ARGV[2]); - - -sub make_dmg -{ - my $src = $_[0]; - my $dst = $_[1]; - my $name = $_[2]; - - # check dirs - if( not -d $dst && -d $src ) { - die "src and dst must be directories\n"; - } - - # calc disk image size - if( not open( MYPIPE, "$duExec -sk \"${src}\" |") ) { - die "couldn't open pipe\n"; - } - (my $dmgsize) = split( /\s+/, <MYPIPE>); - close( MYPIPE); - $dmgsize /= 1024; - $dmgsize = int($dmgsize + 4); - if( $dmgsize < 5 ) { - $dmgsize = 5 - } - - # create disk image - system "cd \"$dst\"; $hdiUtilExec create -megabytes $dmgsize -ov \"_${name}\""; - if( $? ) { die "couldn't create disk image\n"; } - - # format disk image - if( not open( MYPIPE, "cd \"$dst\"; $hdiDrvExec -nomount \"_${name}.dmg\" |") ) { - die "couldn't open pipe\n"; - } - (my $dev) = split( /\t/, <MYPIPE>); - $dev =~ s/^(.*\S)\s*$/$1/; - my( $part, $raw, $pname); - while( <MYPIPE> ) { - ($part,$pname) = split /\t/; - if( $pname =~ m/^Apple_HFS/ ) { - $part =~ s/^\s*(.*\S)\s*$/$1/; - $raw = $part; - $raw =~ s/^(\/dev\/)(.+)/$1r$2/; - last; - } - } - close( MYPIPE); - system "cd \"$dst\" ; $newfsExec -v \"$name\" $raw"; - if( $? ) { system "$hdiUtilExec eject $dev"; die "couldn't format disk image\n"; } - system "$hdiUtilExec eject $dev"; - if( $? ) { die "couldn't eject disk image\n"; } - - # copy files - if( not open( MYPIPE, "cd \"$dst\"; $hdiDrvExec \"_${name}.dmg\" |") ) { - die "couldn't open pipe\n"; - } - ($dev) = split( /\t/, <MYPIPE>); - $dev =~ s/^(.*\S)\s*$/$1/; - my $vname; - while( <MYPIPE> ) { - ($part,$pname,$vname) = split /\t/; - if( $pname =~ m/^Apple_HFS/ ) { - $vname =~ s/^(.*\S)\s*$/$1/; - last; - } - } - close( MYPIPE); - system "$dittoExec \"${src}\" \"${vname}\""; - if( $? ) { system "$hdiUtilExec eject $dev"; die "couldn't copy files\n"; } - system "$hdiUtilExec eject $dev"; - if( $? ) { die "couldn't eject disk image\n"; } - - # convert disk image - system "cd \"$dst\"; $hdiUtilExec convert \"_${name}.dmg\" -format UDCO -o \"${name}\""; - if( $? ) { die "couldn't convert disk image\n"; } -} |