REM ISO File Creator
REM by Christian Albrecht
REM Requires yab v 1.0
REM 2007
screenWidth = peek("desktopwidth")
screenHeight = peek("desktopheight")
joliet$=""
window open ((screenWidth/2)-190), ((screenHeight/2)-200) to ((screenWidth/2)+190), ((screenHeight/2)+200), "View_ISOCreator", "IFC - ISO File Creator"
window set "View_ISOCreator", "MinimumTo", 375,400
window set "View_ISOCreator", "MaximumTo", 375,400
window set "View_ISOCreator", "flags", "not-resizable"
MainWindow()
dim part$(1)
inloop = true
while(inloop)
msg$ = message$
if (split(msg$, part$(), ":|") > 2) then
PartOne$=part$(1)
PartTwo$ = part$(2)
PartThree$ = part$(3)
fi
switch msg$
case "View_ISOCreator:_QuitRequested|"
window close "ISOCreator"
break
case "View_ISOCreator:"+translate$("Main:Quit")+"|"
window close "ISOCreator"
break
case "View_ISOCreator:"+translate$("Main:About")+"|"
about()
break
case "close_about|"
WINDOW CLOSE "View_About"
break
case "select_path_source|"
TEXTEDIT CLEAR "info"
source_folder$ = FILEPANEL "Load-Directory", translate$("Select Source Folder"), "/boot/home"
TEXTCONTROL SET "folder_path_source", source_folder$
break
case "select_path_target|"
TEXTEDIT CLEAR "info"
source_folder$ = FILEPANEL "Save-File", translate$("Select Target Folder"), "/boot/home", "*.iso"
TEXTCONTROL SET "folder_path_target", source_folder$
break
case "info_path_source|"
TEXTEDIT CLEAR "info"
TEXTEDIT ADD "info", translate$("Select the source folder")+".\n"+translate$("All files from this folder will be included into the iso image")+"."
break
case "info_path_target|"
TEXTEDIT CLEAR "info"
TEXTEDIT ADD "info", translate$("Select the target folder and the name for the iso image")+"."
break
case "info_iso_name|"
TEXTEDIT CLEAR "info"
TEXTEDIT ADD "info", translate$("Enter the name for the ISO image file")+"."
break
case "joliet:ON|"
TEXTEDIT CLEAR "info"
option set "udf", "enabled", false
udf$=""
option set "joliet-long", "enabled", true
joliet$="-J "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Generate Joliet directory information")+"."
break
case "joliet-long:ON|"
TEXTEDIT CLEAR "info"
if(joliet$="-J ")then
jolietlong$="-joliet-long "
else
jolietlong$=""
fi
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Allow Joliet file names to be 103 Unicode characters")+"."
break
case "full-iso9660-filenames:ON|"
TEXTEDIT CLEAR "info"
option set "max-iso9660-filenames", "enabled", false
fulliso9660filenames$="-full-iso9660-filenames "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Allow full 31 character filenames for ISO9660 names")+"."
break
case "max-iso9660-filenames:ON|"
TEXTEDIT CLEAR "info"
option set "full-iso9660-filenames", "enabled", false
maxiso9660filenames$="-max-iso9660-filenames "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Allow 37 character filenames for ISO9660 names (violates ISO9660)")+"."
break
case "rational-rock:ON|"
TEXTEDIT CLEAR "info"
rationalrock$="-r "
option set "rockridge", "enabled", false
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Generate rationalized Rock Ridge directory information")+"."
break
case "rockridge:ON|"
TEXTEDIT CLEAR "info"
rockridge$="-R "
option set "rational-rock", "enabled", false
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Generate Rock Ridge directory information")+"."
break
case "udf:ON|"
TEXTEDIT CLEAR "info"
option set "joliet", "enabled", false
joliet$=""
option set "dvd-video", "enabled", true
udf$="-udf "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Generate UDF file system")+"."
break
case "dvd-video:ON|"
TEXTEDIT CLEAR "info"
dvdvideo$="-dvd-video "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Generate DVD-Video compliant UDF file system")+"."
break
case "hard-disk-boot:ON|"
TEXTEDIT CLEAR "info"
option set "no-boot", "enabled", false
if(noboot$="-no-boot ")then
harddiskboot$=""
else
harddiskboot$="-hard-disk-boot "
fi
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Boot image is a hard disk image")+"."
break
case "no-emul-boot:ON|"
TEXTEDIT CLEAR "info"
noemulboot$="-no-emul-boot "
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Boot image is 'no emulation' image")+"."
break
case "no-boot:ON|"
TEXTEDIT CLEAR "info"
option set "hard-disk-boot", "enabled", false
if(harddiskboot$="-hard-disk-boot ")then
noboot$=""
else
noboot$="-no-boot "
fi
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
TEXTEDIT ADD "info", translate$("Boot image is not bootable")+"."
break
case "joliet:OFF|"
TEXTEDIT CLEAR "info"
option set "udf", "enabled", true
if(jolietlong$="-joliet-long ")then
jolietlong$=""
CHECKBOX SET "joliet-long", 0
fi
option set "joliet-long", "enabled", false
joliet$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "joliet-long:OFF|"
TEXTEDIT CLEAR "info"
jolietlong$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "full-iso9660-filenames:OFF|"
TEXTEDIT CLEAR "info"
option set "max-iso9660-filenames", "enabled", true
fulliso9660filenames$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "max-iso9660-filenames:OFF|"
TEXTEDIT CLEAR "info"
option set "full-iso9660-filenames", "enabled", true
maxiso9660filenames$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "rational-rock:OFF|"
TEXTEDIT CLEAR "info"
option set "rockridge", "enabled", true
rationalrock$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "rockridge:OFF|"
TEXTEDIT CLEAR "info"
option set "rational-rock", "enabled", true
rockridge$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "udf:OFF|"
TEXTEDIT CLEAR "info"
option set "joliet", "enabled", true
if(dvdvideo$="-dvd-video ")then
dvdvideo$=""
CHECKBOX SET "dvd-video", 0
fi
option set "dvd-video", "enabled", false
udf$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "dvd-video:OFF|"
TEXTEDIT CLEAR "info"
dvdvideo$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "hard-disk-boot:OFF|"
TEXTEDIT CLEAR "info"
option set "no-boot", "enabled", true
harddiskboot$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "no-emul-boot:OFF|"
TEXTEDIT CLEAR "info"
noemulboot$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "no-boot:OFF|"
TEXTEDIT CLEAR "info"
option set "hard-disk-boot", "enabled", true
noboot$=""
TEXTCONTROL SET "commands", joliet$+jolietlong$+fulliso9660filenames$+maxiso9660filenames$+rationalrock$+rockridge$+udf$+dvdvideo$+harddiskboot$+noemulboot$+noboot$
break
case "create|"
TEXTEDIT CLEAR "info"
option_deactivate()
TEXTEDIT ADD "info", translate$("Creating ISO Image")+"!\n\n"
Source$=TEXTCONTROL GET$ "folder_path_source"
Target$=TEXTCONTROL GET$ "folder_path_target"
ISOName$=TEXTCONTROL GET$ "enter_iso_name"
if(Source$="")then
TEXTEDIT ADD "info", translate$("You need to select a source folder")+"!"
option_activate()
elseif(Target$="")then
TEXTEDIT ADD "info", translate$("You need to select the target folder")+"!"
option_activate()
elseif(ISOName$="")then
TEXTEDIT ADD "info", translate$("You need to select a ISO filename")+"!"
option_activate()
else
TEXTEDIT ADD "info", translate$("Moving Window to background")+"!\n\n"
wait 2
WINDOW SET "View_ISOCreator", "Deactivated"
Commands$=TEXTCONTROL GET$ "commands"
result$=System$("mkisofs "+Commands$+" -V "+ISOName$+" -o "+Target$+" "+Source$+" 2>&1")
TEXTEDIT ADD "info", result$+"\n\n"
TEXTEDIT ADD "info", translate$("Ready")+"!"
LineNumber = TEXTEDIT GET "info", "currentline"
TEXTEDIT SET "info", "gotoline", LineNumber
option_activate()
WINDOW SET "View_ISOCreator", "Activated"
dim FolderDeth$(1)
FolderDeth = split(Target$, FolderDeth$(), "/")
x=1
TargetFolder$=""
for TargetFolder=1 to FolderDeth-2
x=x+1
TargetFolder$=TargetFolder$+"/"+FolderDeth$(x)
next TargetFolder
Output$=System$("open "+TargetFolder$)
option_activate()
fi
joliet$=""
jolietlong$=""
fulliso9660filenames$=""
maxiso9660filenames$=""
rationalrock$=""
rockridge$=""
udf$=""
dvdvideo$=""
harddiskboot$=""
noemulboot$=""
noboot$=""
CHECKBOX SET "joliet", 0
CHECKBOX SET "joliet-long", 0
CHECKBOX SET "full-iso9660-filenames", 0
CHECKBOX SET "max-iso9660-filenames", 0
CHECKBOX SET "rational-rock", 0
CHECKBOX SET "rockridge", 0
CHECKBOX SET "udf", 0
CHECKBOX SET "dvd-video", 0
CHECKBOX SET "hard-disk-boot", 0
CHECKBOX SET "no-emul-boot", 0
CHECKBOX SET "no-boot", 0
break
end switch
if(window count<1) inloop = false
sleep 0.1
wend
sub MainWindow()
menu translate$("Main"), translate$("About"), "", "View_ISOCreator"
menu translate$("Main"), translate$("Quit"), "", "View_ISOCreator"
BOXVIEW 5,35 TO 370,390, "View_ISO", "ISO File Creator", 1, "View_ISOCreator"
DRAW TEXT 10,30, translate$("Source Folder"), "View_ISO"
TEXTCONTROL 80,15 TO 290,20, "folder_path_source", "", "", "View_ISO"
BUTTON 300,15 TO 320,35, "select_path_source", "v", "View_ISO"
BUTTON 330,15 TO 350,35, "info_path_source", "i", "View_ISO"
DRAW TEXT 10,55, translate$("Target Folder"), "View_ISO"
TEXTCONTROL 80,40 TO 290,45, "folder_path_target", "", "", "View_ISO"
BUTTON 300,40 TO 320,60, "select_path_target", "v", "View_ISO"
BUTTON 330,40 TO 350,60, "info_path_target", "i", "View_ISO"
DRAW TEXT 10,80, translate$("ISO Name"), "View_ISO"
TEXTCONTROL 80,65 TO 290,70, "enter_iso_name", "", "", "View_ISO"
BUTTON 330,65 TO 350,85, "info_iso_name", "i", "View_ISO"
CHECKBOX 10,90, "joliet", "Joliet", 0, "View_ISO"
CHECKBOX 10,110, "joliet-long", "Joliet-long", 0, "View_ISO"
option set "joliet-long", "enabled", false
CHECKBOX 10,130, "full-iso9660-filenames", "full ISO", 0, "View_ISO"
CHECKBOX 90,90, "max-iso9660-filenames", "max ISO", 0, "View_ISO"
CHECKBOX 90,110, "rational-rock", "rat. Rock", 0, "View_ISO"
CHECKBOX 90,130, "rockridge", "Rock Ridge", 0, "View_ISO"
CHECKBOX 180,90, "udf", "UDF", 0, "View_ISO"
CHECKBOX 180,110, "dvd-video", "dvd-video", 0, "View_ISO"
option set "dvd-video", "enabled", false
CHECKBOX 270,90, "hard-disk-boot", "HD boot", 0, "View_ISO"
CHECKBOX 270,110, "no-emul-boot", "no Emu", 0, "View_ISO"
CHECKBOX 270,130, "no-boot", "no Boot", 0, "View_ISO"
TEXTCONTROL 0,160 TO 350,180, "commands", "", "", "View_ISO"
TEXTEDIT 10,190 TO 350,300, "info", 1, "View_ISO"
BUTTON 130,310 TO 230,320, "create", translate$("create"), "View_ISO"
end sub
sub option_activate()
option set "create", "enabled", true
option set "folder_path_source", "enabled", true
option set "folder_path_target", "enabled", true
option set "select_path_source", "enabled", true
option set "select_path_target", "enabled", true
option set "enter_iso_name", "enabled", true
option set "info_path_source", "enabled", true
option set "info_path_target", "enabled", true
option set "info_iso_name", "enabled", true
option set "commands", "enabled", true
option set "joliet", "enabled", true
option set "joliet-long", "enabled", true
option set "full-iso9660-filenames", "enabled", true
option set "max-iso9660-filenames", "enabled", true
option set "rational-rock", "enabled", true
option set "rockridge", "enabled", true
option set "udf", "enabled", true
option set "dvd-video", "enabled", true
option set "hard-disk-boot", "enabled", true
option set "no-emul-boot", "enabled", true
option set "no-boot", "enabled", true
end sub
sub option_deactivate()
option set "create", "enabled", false
option set "folder_path_source", "enabled", false
option set "folder_path_target", "enabled", false
option set "select_path_source", "enabled", false
option set "select_path_target", "enabled", false
option set "enter_iso_name", "enabled", false
option set "info_path_source", "enabled", false
option set "info_path_target", "enabled", false
option set "info_iso_name", "enabled", false
option set "commands", "enabled", false
option set "joliet", "enabled", false
option set "joliet-long", "enabled", false
option set "full-iso9660-filenames", "enabled", false
option set "max-iso9660-filenames", "enabled", false
option set "rational-rock", "enabled", false
option set "rockridge", "enabled", false
option set "udf", "enabled", false
option set "dvd-video", "enabled", false
option set "hard-disk-boot", "enabled", false
option set "no-emul-boot", "enabled", false
option set "no-boot", "enabled", false
end sub
sub about()
window open ((screenWidth/2)-130), ((screenHeight/2)-100) to ((screenWidth/2)+130), ((screenHeight/2)+100), "View_About", "About"
window set "View_About", "MinimumTo", 260,200
window set "View_About", "MaximumTo", 260,200
window set "View_About", "look", "modal"
draw text 15, 25, "BeSly ISO Image Creator", "View_About"
draw text 15, 60, "Version: ", "View_About"
draw text 130, 60, "0.8 Beta / 30.11.2007", "View_About"
draw text 15, 80, "Developer: ", "View_About"
draw text 130,80, "Christian Albrecht", "View_About"
draw text 15, 100, "Nickname: ", "View_About"
draw text 130, 100, "Lelldorin", "View_About"
draw text 15, 120, "Homepage: ", "View_About"
texturl 130,112, "Homepage", "http://www.besly.de", "http://www.besly.de", "View_About"
BUTTON 90,160 TO 170,180, "close_about", translate$("Close"), "View_About"
end sub
|