mirror of
https://github.com/minexew/Shrine.git
synced 2026-05-26 17:01:02 +00:00
AutoOSInstall: track a diff instead of the full file
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
AutoOSInstall/AutoOSInstall.HC
|
||||
PkgBin
|
||||
*.ISO
|
||||
*.iso
|
||||
|
||||
@@ -1,218 +0,0 @@
|
||||
U0 InstallDrv(U8 drv_let)
|
||||
{
|
||||
U8 *st;
|
||||
ExePrint("CopyTree(\"::/\",\"%C:/\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Tmp\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Tmp/ScrnShots\");",drv_let);
|
||||
ExePrint("MkDir(\"%C:/Home\");",drv_let);
|
||||
|
||||
st=MStrPrint("%C:/Home/DoDistro.HC.Z",drv_let);
|
||||
if (!FileFind(st))
|
||||
Copy("::/Misc/DoDistro.HC.Z",st);
|
||||
Free(st);
|
||||
|
||||
st=MStrPrint("%C:/Home/MakeHome.HC.Z",drv_let);
|
||||
if (!FileFind(st))
|
||||
Copy("::/MakeHome.HC.Z",st);
|
||||
Free(st);
|
||||
}
|
||||
|
||||
Bool VMPrtDsk(CTask *task,CATARep *ata_drv)
|
||||
{
|
||||
if (ata_drv) {
|
||||
XTalkWait(task,"PrtDsk(,0.5,0.5);\nC\np%d\nY",ata_drv->num);
|
||||
return TRUE;
|
||||
} else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
U0 VMInstallDrv(CTask *task,U8 drv_let,
|
||||
CATARep *ata_drv,CATARep *atapi_drv)
|
||||
{
|
||||
InstallDrv(drv_let);
|
||||
XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n",drv_let);
|
||||
if (ata_drv)
|
||||
XTalkWait(task,"C\np%d\n",ata_drv->num);
|
||||
if (atapi_drv)
|
||||
XTalkWait(task,"Tp%d\n",atapi_drv->num);
|
||||
XTalkWait(task,"\n\n\n"); //Exit Drives,Dsk Cache,Options
|
||||
}
|
||||
|
||||
U0 VMInstallWiz()
|
||||
{
|
||||
CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL;
|
||||
CTask *task;
|
||||
"\nIt's normal for this to freeze for a moment or two.\n";
|
||||
|
||||
task=User;
|
||||
TaskWait(task);
|
||||
task->border_src=BDS_CONST;
|
||||
task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
|
||||
task->text_attr =LTGRAY<<4+BLUE;
|
||||
task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;
|
||||
WinHorz(Fs->win_left,Fs->win_right,task);
|
||||
WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
WinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
|
||||
ATARep(FALSE,TRUE,&head);
|
||||
ATAIDDrvs(head,&ata_drv,&atapi_drv);
|
||||
if (VMPrtDsk(task,ata_drv)) {
|
||||
VMInstallDrv(task,'C',ata_drv,atapi_drv);
|
||||
VMInstallDrv(task,'D',ata_drv,atapi_drv);
|
||||
BootMHDIns('C');
|
||||
}
|
||||
LinkedLstDel(head);
|
||||
WinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 RegularInstallWiz()
|
||||
{
|
||||
I64 unit,drv_let;
|
||||
U8 *st,*base0,*base1;
|
||||
CATARep *head=NULL,*tmpha;
|
||||
I64 ch,num_hints;
|
||||
CTask *task;
|
||||
|
||||
"\nIt's normal for this to freeze for a moment or two.\n";
|
||||
PressAKey;
|
||||
|
||||
task=User;
|
||||
TaskWait(task);
|
||||
task->border_src=BDS_CONST;
|
||||
task->border_attr=LTGRAY<<4+DrvTextAttrGet(':')&15;
|
||||
task->text_attr =LTGRAY<<4+BLUE;
|
||||
task->win_inhibit=WIG_TASK_DFT-WIF_SELF_BORDER;
|
||||
WinHorz(Fs->win_left,Fs->win_right,task);
|
||||
WinVert(Fs->win_top,(Fs->win_top+Fs->win_bottom)>>2-1,task);
|
||||
WinVert(task->win_bottom+3,Fs->win_bottom);
|
||||
WinToTop(Fs);
|
||||
XTalk(task,"Mount;\nC\np");
|
||||
|
||||
num_hints=ATARep(FALSE,,&head);
|
||||
"\nInclude '$$PURPLE$$0x$$FG$$' for hexidecimal numbers.\n\n";
|
||||
while (TRUE) {
|
||||
base0=GetStr("Hard Drive I/O Port Base0 : ");
|
||||
if (0<Str2I64(base0)<=0xFFFF)
|
||||
break;
|
||||
Free(base0);
|
||||
}
|
||||
if (1<=Str2I64(base0)<=num_hints) {
|
||||
tmpha=ATARepFind(&head,Str2I64(base0));
|
||||
Free(base0);
|
||||
base0=MStrPrint("0x%X",tmpha->base0);
|
||||
base1=MStrPrint("0x%X",tmpha->base1);
|
||||
st =MStrPrint("0x%X",tmpha->unit);
|
||||
unit=Str2I64(st);
|
||||
Free(st);
|
||||
} else {
|
||||
while (TRUE) {
|
||||
base1=GetStr("Hard Drive I/O Port Base1 : ");
|
||||
if (0<Str2I64(base1)<=0xFFFF)
|
||||
break;
|
||||
Free(base1);
|
||||
}
|
||||
do {
|
||||
st =GetStr("Unit--$$PURPLE$$0$$FG$$=Master or $$PURPLE$$1$$FG$$=Slave: ","0");
|
||||
unit=Str2I64(st);
|
||||
Free(st);
|
||||
} while (!(0<=unit<=1));
|
||||
}
|
||||
LinkedLstDel(head);
|
||||
XTalkWait(task,"%s\n%s\n%C\n",base0,base1,'0'+unit);
|
||||
DrvRep;
|
||||
do {
|
||||
st=GetStr("\nDestination Partition Letter: ");
|
||||
if (*st)
|
||||
drv_let=Let2Let(*st);
|
||||
else
|
||||
drv_let=0;
|
||||
Free(st);
|
||||
} while (!('A'<=drv_let<='Z'));
|
||||
'\n';
|
||||
|
||||
"$$RED$$Format %C Partition?$$FG$$\n",drv_let;
|
||||
if (YorN) {
|
||||
'\n';
|
||||
do {
|
||||
"$$PURPLE$$1$$FG$$) Use FAT32\n"
|
||||
"$$PURPLE$$2$$FG$$) Use RedSea\n"
|
||||
"\nFile System Type: ";
|
||||
ch=GetChar;
|
||||
'\n';
|
||||
} while (!('1'<=ch<='2'));
|
||||
if (ch=='1')
|
||||
Fmt(drv_let,,FALSE,FSt_FAT32);
|
||||
else
|
||||
Fmt(drv_let,,FALSE,FSt_REDSEA);
|
||||
}
|
||||
InstallDrv(drv_let);
|
||||
XTalkWait(task,"BootHDIns('%C');\n\nB\n0x20000\n"
|
||||
"C\ns%s\n%s\n%C\n\n\n", //Exit Drives,Dsk Cache,Options
|
||||
drv_let,base0,base1,'0'+unit);
|
||||
"$$RED$$Install Master Boot loader?$$FG$$";
|
||||
if (YorN) {
|
||||
'\n';
|
||||
BootMHDIns(drv_let);
|
||||
}
|
||||
Free(base0);
|
||||
Free(base1);
|
||||
|
||||
WinVert(task->win_top,Fs->win_bottom);
|
||||
Kill(task);
|
||||
}
|
||||
|
||||
U0 DoInstructions()
|
||||
{
|
||||
CTask *task;
|
||||
AutoComplete;
|
||||
task=Fs->next_task;
|
||||
while (task!=Fs) {
|
||||
if (task!=adam_task && task!=sys_winmgr_task && task!=ac.task) {
|
||||
XTalk(task,"Ed(\"::/Doc/Install.DD.Z\");\n");
|
||||
break;
|
||||
}
|
||||
task=task->next_task;
|
||||
}
|
||||
}
|
||||
|
||||
Bool DoInstall(Bool pmt_reboot)
|
||||
{
|
||||
I64 res=FALSE,vm_install;
|
||||
"\n\n\n\n\nAre you installing inside VMware, QEMU, VirtualBox "
|
||||
"or a similar virtual machine? ";
|
||||
vm_install=TRUE;
|
||||
DocBottom;
|
||||
|
||||
if (vm_install) {
|
||||
VMInstallWiz();
|
||||
res=TRUE;
|
||||
} else {
|
||||
"\n\nThis wizard works if you have a partition ready. "
|
||||
"You can partition the drive or BootHDIns() "
|
||||
"with more options if you do it by hand, not using this wizard.\n\n"
|
||||
"Continue Install Wizard ";
|
||||
if (YorN) {
|
||||
RegularInstallWiz();
|
||||
res=TRUE;
|
||||
} else
|
||||
pmt_reboot=FALSE;
|
||||
}
|
||||
if (pmt_reboot) {
|
||||
"Reboot Now ";
|
||||
if (YorN)
|
||||
Reboot;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
Bool OSInstall(Bool pmt_reboot=TRUE)
|
||||
{
|
||||
DoInstructions;
|
||||
return DoInstall(pmt_reboot);
|
||||
}
|
||||
|
||||
#if __CMD_LINE__
|
||||
OSInstall(TRUE);
|
||||
#endif
|
||||
@@ -0,0 +1,19 @@
|
||||
--- ../TempleOS/TempleOSCD/Misc/OSInstall.HC 2017-01-29 20:12:39.304591503 +0100
|
||||
+++ AutoOSInstall.HC 2017-01-24 13:03:00.939749201 +0100
|
||||
@@ -43,7 +43,6 @@
|
||||
CATARep *head=NULL,*ata_drv=NULL,*atapi_drv=NULL;
|
||||
CTask *task;
|
||||
"\nIt's normal for this to freeze for a moment or two.\n";
|
||||
- PressAKey;
|
||||
|
||||
task=User;
|
||||
TaskWait(task);
|
||||
@@ -183,7 +182,7 @@
|
||||
I64 res=FALSE,vm_install;
|
||||
"\n\n\n\n\nAre you installing inside VMware, QEMU, VirtualBox "
|
||||
"or a similar virtual machine? ";
|
||||
- vm_install=YorN;
|
||||
+ vm_install=TRUE;
|
||||
DocBottom;
|
||||
|
||||
if (vm_install) {
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PURE_DIR=../TempleOS/TempleOSCD
|
||||
|
||||
FLAGS="-p1 -u -Z"
|
||||
|
||||
cp -rp $PURE_DIR/Misc/OSInstall.HC AutoOSInstall.HC
|
||||
|
||||
patch -i AutoOSInstall.diff
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PURE_DIR=../TempleOS/TempleOSCD
|
||||
|
||||
FLAGS="-u"
|
||||
|
||||
diff $FLAGS "$PURE_DIR/Misc/OSInstall.HC" "AutoOSInstall.HC" >AutoOSInstall.diff
|
||||
+3
-4
@@ -10,10 +10,9 @@ Building from source
|
||||
git submodule update --init --recursive
|
||||
git apply isoparser.patch
|
||||
|
||||
# Some files are provided as diffs against stock TempleOS, this applies them
|
||||
cd Shrine
|
||||
./apply-patches.sh
|
||||
cd ..
|
||||
# Some files are provided as diffs against stock TempleOS, this generates the full files
|
||||
cd AutoOSInstall && ./apply-patches.sh && cd ..
|
||||
cd Shrine && ./apply-patches.sh && cd ..
|
||||
|
||||
# Finally run the machinery
|
||||
qemu-img create -f qcow2 ~/shrine.img 2G
|
||||
|
||||
Reference in New Issue
Block a user