1 | #!/bin/sh␊ |
2 | ␊ |
3 | # Copyright 2009 org.darwinx86.app. All rights reserved.␊ |
4 | #␊ |
5 | # Modified Nov 18th 2011 by Rekursor␊ |
6 | # Added 2 parameters to specify repectively :␊ |
7 | # $1 = Extra dir location␊ |
8 | # $2 = cdboot file dir location␊ |
9 | ␊ |
10 | # Directories␊ |
11 | if [[ $# < 1 ]];then␊ |
12 | ␉extra="/Extra"␊ |
13 | else␊ |
14 | ␉extra="$1"␊ |
15 | fi␊ |
16 | if [[ $# < 2 ]];then␊ |
17 | ␉cdBootDir="${extra}"␊ |
18 | else␊ |
19 | ␉cdBootDir="$2"␊ |
20 | fi␊ |
21 | echo Extra dir is ${extra} cdBootDir is ${cdBootDir}␊ |
22 | mydir=`dirname $0`␊ |
23 | ␊ |
24 | tempDir=/tmp␊ |
25 | finaldir=~/Desktop/Chameleon␊ |
26 | isodir=/tmp/newiso␊ |
27 | extradir=/tmp/newiso/Extra␊ |
28 | preDir=/tmp/newiso/Extra/Preboot␊ |
29 | prebootDir="${preDir}/Extra"␊ |
30 | backDir=$finaldir␊ |
31 | bkpdir="${finaldir}/Previous-dmg"␊ |
32 | ␊ |
33 | echo "Starting script..."␊ |
34 | ␊ |
35 | #errors␊ |
36 | if ([ ! -f $extra/Extensions.mkext ] && [ ! -d $extra/Extensions ]);then␊ |
37 | ␉echo "- Error: no Extensions.mkext or Extensions folder. One of them is required"␊ |
38 | ␉echo " ------------------------"␊ |
39 | ␉exit 1␊ |
40 | fi␊ |
41 | ␊ |
42 | if [ ! -f $extra/org.chameleon.Boot.plist ];then␊ |
43 | echo "- Error: no org.chameleon.Boot.plist found. File required"␊ |
44 | echo " ------------------------"␊ |
45 | exit 1␊ |
46 | fi␊ |
47 | if [ ! -f $cdBootDir/cdboot ];then␊ |
48 | echo "- Error: no cdboot found. File required"␊ |
49 | echo " ------------------------"␊ |
50 | exit 1␊ |
51 | fi␊ |
52 | ␊ |
53 | # Create a work directory␊ |
54 | echo " - temps folders created"␊ |
55 | echo " - Checking files"␊ |
56 | #copy Extra files to temp directory␊ |
57 | if ([ ! -d $prebootDir ]);then␊ |
58 | ␉mkdir -p $prebootDir␊ |
59 | fi␊ |
60 | if ([ ! -d $bkpdir ]);then␊ |
61 | ␉mkdir -p $bkpdir␊ |
62 | fi␊ |
63 | ␊ |
64 | if [ -f $cdBootDir/cdboot ];then␊ |
65 | cp -R $cdBootDir/cdboot $isodir␊ |
66 | fi␊ |
67 | ␊ |
68 | if [ -f $extra/dsdt.aml ];then␊ |
69 | cp -R $extra/dsdt.aml $prebootDir␊ |
70 | fi␊ |
71 | ␊ |
72 | if [ -f $extra/DSDT.aml ];then␊ |
73 | ␉cp -R $extra/DSDT.aml $prebootDir␊ |
74 | fi␊ |
75 | ␊ |
76 | if [ -f $extra/NVIDIA.ROM ];then␊ |
77 | ␉cp -R $extra/NVIDIA.ROM $prebootDir␊ |
78 | fi␊ |
79 | ␊ |
80 | if [ -f $extra/smbios.plist ];then␊ |
81 | cp -R $extra/smbios.plist $prebootDir␊ |
82 | fi␊ |
83 | ␊ |
84 | if [ -f $extra/Extensions.mkext ];then␊ |
85 | cp -R $extra/Extensions.mkext $prebootDir␊ |
86 | fi␊ |
87 | ␊ |
88 | if [ -d $extra/Extensions ];then␊ |
89 | cp -Rp $extra/Extensions $prebootDir␊ |
90 | fi␊ |
91 | ␊ |
92 | if [ -f $extra/org.chameleon.Boot.plist ];then␊ |
93 | ␉cp -R $extra/org.chameleon.Boot.plist $prebootDir␊ |
94 | fi␊ |
95 | if [ -f $tempDir/org.chameleon.Boot.plist ];then␊ |
96 | cp -R $tempDir/org.chameleon.Boot.plist $extradir␊ |
97 | fi␊ |
98 | ␊ |
99 | echo "- Files copied in temp folder"␊ |
100 | ␊ |
101 | # ramdisk creator␊ |
102 | if [ -f $extradir/Preboot.dmg ];then␊ |
103 | ␉rm $extradir/Preboot.dmg␊ |
104 | fi␊ |
105 | hdiutil create -srcfolder $preDir/ -layout GPTSPUD -fs HFS+ -format UDRW -volname Preboot $extradir/Preboot.dmg␊ |
106 | rm -R $preDir␊ |
107 | echo " - ram disk created"␊ |
108 | ␊ |
109 | # boot cd creator␊ |
110 | hdiutil makehybrid -o BootCD.iso $isodir/ -iso -hfs -joliet -eltorito-boot $isodir/cdboot -no-emul-boot -hfs-volume-name "Boot CD" -joliet-volume-name "Boot CD"␊ |
111 | echo " - hybrid image created"␊ |
112 | ␊ |
113 | # Create output and backup directories␊ |
114 | if [ -f $finaldir/BootCD.iso ];then␊ |
115 | if [ ! -d $bkpdir ];then␊ |
116 | mkdir $backDir␊ |
117 | mkdir $bkpdir␊ |
118 | echo " - backup folder created"␊ |
119 | ␉fi␊ |
120 | mv -f $finaldir/BootCD.iso $bkpdir/BootCd-$(date +"%d-%y-%Hh%M").iso␊ |
121 | echo " - previous ISO moved into backup folder"␊ |
122 | fi␊ |
123 | mv BootCD.iso $finaldir␊ |
124 | echo " - ISO moved on desktop"␊ |
125 | ␊ |
126 | # cleanup␊ |
127 | echo " - Perform cleaning"␊ |
128 | echo " - ISO created succefully"␊ |
129 | echo " ------------------------"␊ |
130 | exit 0 |