1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#!/usr/bin/perl
# Quick hack script to generate the .DS_Store for the DMG, which
# * allows us to precisely position the window and icons
# * is more usefully versioned
# * avoids references to my local HD(!?)
use warnings;
use strict;
BEGIN {
use File::Spec::Functions qw(rel2abs splitpath);
use lib (splitpath(rel2abs($0)))[1];
}
use Data::Plist::BinaryWriter;
use Mac::Finder::DSStore qw(writeDSDBEntries makeEntries);
use Mac::Finder::AliasRecord;
$Mac::Finder::DSStore::Entry::types{bwsp} = 'blob';
$Mac::Finder::DSStore::Entry::types{icvp} = 'blob';
writeDSDBEntries($ARGV[0] || "DS_Store",
makeEntries(".",
bwsp => Data::Plist::BinaryWriter->new(serialize => 0)->write([
dict => {
WindowBounds => [
string => sprintf('{{%d, %d}, {%d, %d}}',
512, 128, 512, 608 + 22)
],
SidebarWidth => [integer => 0],
ShowToolbar => [false => 0],
ShowSidebar => [false => 0],
ShowPathbar => [false => 0],
ShowStatusBar => [false => 0],
}
]),
icvp => Data::Plist::BinaryWriter->new(serialize => 0)->write([
dict => {
viewOptionsVersion => [integer => 0],
arrangeBy => [string => "none"],
iconSize => [real => 64],
textSize => [real => 12],
labelOnBottom => [true => 1],
gridSpacing => [real => 100],
gridOffsetX => [real => 0],
gridOffsetY => [real => 0],
showItemInfo => [false => 0],
showIconPreview => [false => 0],
backgroundType => [integer => 2],
backgroundColorRed => [real => 0],
backgroundColorGreen => [real => 0],
backgroundColorBlue => [real => .5],
backgroundImageAlias => [
data => Mac::Finder::AliasRecord->new(
path => 'ZBarSDK:.background:ZBarSDK-bg.png',
volumeFS => 'HFS+')->write()
],
},
]),
vstl => "icnv",
),
makeEntries("README", Iloc_xy => [ 4.5 * 32, 2.5 * 32 ]),
makeEntries("ZBarSDK", Iloc_xy => [ 4.5 * 32, 7.5 * 32 ]),
makeEntries("ChangeLog", Iloc_xy => [ 4 * 32, 12.5 * 32 ]),
makeEntries("Documentation.html",
Iloc_xy => [ 8 * 32, 12.5 * 32 ]),
makeEntries("Examples", Iloc_xy => [ 12 * 32, 12.5 * 32 ]),
makeEntries("COPYING", Iloc_xy => [ 4 * 32, 16 * 32 ]),
makeEntries("LICENSE.md", Iloc_xy => [ 8 * 32, 16 * 32 ]),
makeEntries("Documentation",Iloc_xy => [ 12 * 32, 16 * 32 ]),
);
|