mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-27 07:46:33 +00:00
Update OS Upgrade feature.
This commit is contained in:
parent
bab9e8a43c
commit
b66744f5b2
1 changed files with 28 additions and 23 deletions
|
@ -10,7 +10,7 @@ CDirEntry OSFilesMGFind(CDirEntry *needle_entry, CDirEntry *haystack_list)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
U0 OSFilesMergeInner(CDirEntry *tmpde1, CDirEntry *tmpde2, I64 *_fuf_flags, I64 *_df_flags)
|
U0 OSFilesMergeInner(CDirEntry *tmpde1, CDirEntry *tmpde2, I64 *_fuf_flags, I64 *_df_flags, Bool auto)
|
||||||
{
|
{
|
||||||
CDirEntry *tmpde;
|
CDirEntry *tmpde;
|
||||||
U8 *new;
|
U8 *new;
|
||||||
|
@ -29,17 +29,21 @@ U0 OSFilesMergeInner(CDirEntry *tmpde1, CDirEntry *tmpde2, I64 *_fuf_flags, I64
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (tmpde1->attr & RS_ATTR_DIR)
|
if (tmpde1->attr & RS_ATTR_DIR)
|
||||||
OSFilesMergeInner(tmpde1->sub, tmpde->sub, _fuf_flags, _df_flags);
|
OSFilesMergeInner(tmpde1->sub, tmpde->sub, _fuf_flags, _df_flags, auto);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (AbsI64(tmpde1->datetime - tmpde->datetime) > CDATE_FREQ * 2) {//slop
|
if (AbsI64(tmpde1->datetime - tmpde->datetime) > CDATE_FREQ * 2) {//slop
|
||||||
"\n$$LTRED$$%s$$FG$$\n", tmpde->full_name;
|
"\n$$LTRED$$%s$$FG$$\n", tmpde->full_name;
|
||||||
"$$LTGREEN$$%s$$FG$$", tmpde1->full_name;
|
"$$LTGREEN$$%s$$FG$$\n", tmpde1->full_name;
|
||||||
'\n';
|
|
||||||
if (Bt(_fuf_flags, FUf_DIFF))
|
if (Bt(_fuf_flags, FUf_DIFF))
|
||||||
{
|
{
|
||||||
if (FilesFindMatch(tmpde1->full_name, FILEMASK_TXT))
|
if (FilesFindMatch(tmpde1->full_name, FILEMASK_TXT))
|
||||||
|
{
|
||||||
|
if (!auto)
|
||||||
Diff(tmpde->full_name, tmpde1->full_name, _df_flags);
|
Diff(tmpde->full_name, tmpde1->full_name, _df_flags);
|
||||||
|
else
|
||||||
|
Copy(tmpde1->full_name, tmpde->full_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -50,7 +54,7 @@ U0 OSFilesMergeInner(CDirEntry *tmpde1, CDirEntry *tmpde2, I64 *_fuf_flags, I64
|
||||||
|
|
||||||
U0 OSFilesMerge(U8 *dst_files_find_mask="/*", U8 *src_files_find_mask="/*", U8 *fu_flags=NULL)
|
U0 OSFilesMerge(U8 *dst_files_find_mask="/*", U8 *src_files_find_mask="/*", U8 *fu_flags=NULL)
|
||||||
{ // See $LK+PU,"Merge",A="FF:::/System/Utils/Merge.ZC,public U0 Merge"$.
|
{ // See $LK+PU,"Merge",A="FF:::/System/Utils/Merge.ZC,public U0 Merge"$.
|
||||||
I64 df_flags = 0, fuf_flags = 0;
|
I64 df_flags = 0, fuf_flags = 0, ch;
|
||||||
CDirEntry *tmpde1 = NULL, *tmpde2 = NULL;
|
CDirEntry *tmpde1 = NULL, *tmpde2 = NULL;
|
||||||
|
|
||||||
FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), "+r");
|
FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), "+r");
|
||||||
|
@ -61,21 +65,33 @@ U0 OSFilesMerge(U8 *dst_files_find_mask="/*", U8 *src_files_find_mask="/*", U8 *
|
||||||
tmpde1 = FilesFind(src_files_find_mask, fuf_flags & FUG_FILES_FIND);
|
tmpde1 = FilesFind(src_files_find_mask, fuf_flags & FUG_FILES_FIND);
|
||||||
tmpde2 = FilesFind(dst_files_find_mask, fuf_flags & FUG_FILES_FIND);
|
tmpde2 = FilesFind(dst_files_find_mask, fuf_flags & FUG_FILES_FIND);
|
||||||
fuf_flags &= FUF_DIFF;
|
fuf_flags &= FUF_DIFF;
|
||||||
OSFilesMergeInner(tmpde1, tmpde2, &fuf_flags, &df_flags);
|
|
||||||
|
"\n\nManual or Automatic Upgrade? (M/A): ";
|
||||||
|
do
|
||||||
|
ch = ToUpper(CharGet(, FALSE));
|
||||||
|
while (ch != 'M' && ch != 'A');
|
||||||
|
if (ch == 'M')
|
||||||
|
{
|
||||||
|
PopUpOk("\n$$LTGREEN$$FILE2$$FG$$ is new changes.\n"
|
||||||
|
"$$LTRED$$FILE1$$FG$$ is from existing install.");
|
||||||
|
OSFilesMergeInner(tmpde1, tmpde2, &fuf_flags, &df_flags, FALSE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
OSFilesMergeInner(tmpde1, tmpde2, &fuf_flags, &df_flags, TRUE);
|
||||||
|
|
||||||
DirTreeDel(tmpde1);
|
DirTreeDel(tmpde1);
|
||||||
DirTreeDel(tmpde2);
|
DirTreeDel(tmpde2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
U0 OSMerge(U8 dst_drv, U8 src_drv=':')
|
U0 OSMerge(U8 dst_drv, U8 src_drv=':')
|
||||||
{
|
{
|
||||||
U8 *dst = MStrPrint("%C:/", dst_drv);
|
U8 *dst = MStrPrint("%C:/", dst_drv);
|
||||||
U8 *src = MStrPrint("%C:/", src_drv);
|
U8 *src = MStrPrint("%C:/", src_drv);
|
||||||
|
|
||||||
CopyTree(src, "B:/");
|
CopyTree(dst, "B:/");
|
||||||
OSFilesMerge("B:/", dst, "+d");
|
Copy(MStrPrint("%C:/Misc/Bible.TXT", src_drv), "B:/Misc/Bible.TXT");
|
||||||
"Format %C:/ ? ", dst_drv;
|
Copy(MStrPrint("%C:/Misc/Clementine.TXT", src_drv), "B:/Misc/Clementine.TXT");
|
||||||
Format(dst_drv);
|
OSFilesMerge("B:/", src, "+d");
|
||||||
CopyTree("B:/", dst);
|
CopyTree("B:/", dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -129,9 +145,6 @@ U0 OSUpgrade()
|
||||||
|
|
||||||
'\n';
|
'\n';
|
||||||
|
|
||||||
PopUpOk("\n$$LTRED$$FILE1$$FG$$ is new changes.\n"
|
|
||||||
"$$LTGREEN$$FILE2$$FG$$ is from existing install.\n\n"
|
|
||||||
"You can hold $$GREEN$$SPACE$$FG$$ down to just merge everything.");
|
|
||||||
OSMerge(drv_let); // src_drv needed?
|
OSMerge(drv_let); // src_drv needed?
|
||||||
|
|
||||||
XTalkWait(task, "BootHDIns('%C');\n\nB\n0x20000\n%C\n%s\n\n", drv_let, drv_let, port_st);
|
XTalkWait(task, "BootHDIns('%C');\n\nB\n0x20000\n%C\n%s\n\n", drv_let, drv_let, port_st);
|
||||||
|
@ -213,8 +226,6 @@ U0 VMInstallWiz()
|
||||||
WinVert(task->win_bottom + 3, Fs->win_bottom);
|
WinVert(task->win_bottom + 3, Fs->win_bottom);
|
||||||
WinToTop(Fs);
|
WinToTop(Fs);
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////
|
|
||||||
SATARep;
|
SATARep;
|
||||||
for (i = 0; i < AHCI_MAX_PORTS; i++)
|
for (i = 0; i < AHCI_MAX_PORTS; i++)
|
||||||
{
|
{
|
||||||
|
@ -248,8 +259,6 @@ U0 VMInstallWiz()
|
||||||
BootMHDIns('C');
|
BootMHDIns('C');
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////
|
|
||||||
|
|
||||||
WinVert(task->win_top, Fs->win_bottom);
|
WinVert(task->win_top, Fs->win_bottom);
|
||||||
Kill(task);
|
Kill(task);
|
||||||
}
|
}
|
||||||
|
@ -372,10 +381,7 @@ Bool DoInstall(Bool prompt_reboot)
|
||||||
while (ch != 'U' && ch != 'I');
|
while (ch != 'U' && ch != 'I');
|
||||||
|
|
||||||
if (ch == 'U')
|
if (ch == 'U')
|
||||||
{
|
|
||||||
OSUpgrade;
|
OSUpgrade;
|
||||||
prompt_reboot = FALSE;
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
VMInstallWiz();
|
VMInstallWiz();
|
||||||
|
|
||||||
|
@ -402,7 +408,6 @@ Bool DoInstall(Bool prompt_reboot)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
OSUpgrade;
|
OSUpgrade;
|
||||||
prompt_reboot = FALSE;
|
|
||||||
res = TRUE;
|
res = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue