1
0
mirror of https://github.com/alliedmodders/metamod-source.git synced 2025-02-26 19:54:14 +01:00

fixed new install method for FTP

--HG--
branch : sourcemm-1.4.3
extra : convert_revision : svn%3Ac2935e3e-5518-0410-8daf-afa5dab7d4e3/branches/sourcemm-1.4.3%40607
This commit is contained in:
Christian Hammacher 2007-12-24 22:14:50 +00:00
parent 2023db4a44
commit 0918d18d09
3 changed files with 41 additions and 50 deletions

Binary file not shown.

View File

@ -406,8 +406,7 @@ label CreateAgain;
label UploadAgain; label UploadAgain;
var eStr: TStringList; var eStr: TStringList;
i: integer; CopyConfig: Boolean;
CopyConfig, eFound: Boolean;
begin begin
frmMain.cmdCancel.Show; frmMain.cmdCancel.Show;
frmMain.cmdNext.Hide; frmMain.cmdNext.Hide;
@ -418,6 +417,7 @@ begin
frmMain.ggeItem.MaxValue := 3; frmMain.ggeItem.MaxValue := 3;
frmMain.ggeItem.Progress := 0; frmMain.ggeItem.Progress := 0;
StartTime := Now;
{ Unpack } { Unpack }
AddStatus('Unpacking files...', clBlack); AddStatus('Unpacking files...', clBlack);
if not Unpack(Source) then begin if not Unpack(Source) then begin
@ -434,7 +434,7 @@ begin
frmMain.ggeItem.Progress := 0; frmMain.ggeItem.Progress := 0;
AddStatus('Creating directories...', clBlack); AddStatus('Creating directories...', clBlack);
if not eFound then begin try
FTPMakeDir('addons'); FTPMakeDir('addons');
frmMain.IdFTP.ChangeDir('addons'); frmMain.IdFTP.ChangeDir('addons');
frmMain.ggeItem.Progress := 1; frmMain.ggeItem.Progress := 1;
@ -444,12 +444,11 @@ begin
FTPMakeDir('bin'); FTPMakeDir('bin');
frmMain.ggeItem.Progress := 3; frmMain.ggeItem.Progress := 3;
AddDone; AddDone;
end except
else
AddSkipped; AddSkipped;
end;
{ Create/Edit VDF Plugin } { Create/Edit VDF Plugin }
CopyConfig := True; CopyConfig := True;
eFound := False;
frmMain.ggeAll.Progress := 3; frmMain.ggeAll.Progress := 3;
frmMain.ggeItem.Progress := 0; frmMain.ggeItem.Progress := 0;
@ -457,7 +456,7 @@ begin
AddStatus('Creating VDF Plugin...', clBlack); AddStatus('Creating VDF Plugin...', clBlack);
eStr := TStringList.Create; eStr := TStringList.Create;
try try
frmMain.IdFTP.ChangeDir('addons'); frmMain.IdFTP.ChangeDirUp;
frmMain.ggeItem.Progress := 1; frmMain.ggeItem.Progress := 1;
DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); DownloadFile('metamod.vdf', ExtractFilePath(ParamStr(0)) + 'metamod.vdf');
eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); eStr.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf');
@ -465,7 +464,6 @@ begin
if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin if (((Pos('server.dll', eStr.Text) <> 0) and (OS = osWindows)) or ((Pos('server_i486.so', eStr.Text) <> 0) and (OS = osLinux))) then begin
AddSkipped; AddSkipped;
eFound := True;
case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of case MessageBox(frmMain.Handle, 'A Metamod:Source installation was already detected. If you choose to reinstall, your configuration files will be erased. Click Yes to continue, No to Upgrade, or Cancel to abort the install.', PChar(frmMain.Caption), MB_ICONQUESTION + MB_YESNOCANCEL) of
mrNo: CopyConfig := False; mrNo: CopyConfig := False;
mrCancel: begin mrCancel: begin
@ -489,7 +487,6 @@ begin
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'); eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf');
UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf');
frmMain.ggeItem.Progress := 3; frmMain.ggeItem.Progress := 3;
AddDone;
end; end;
{ Upload metaplugins.ini } { Upload metaplugins.ini }
frmMain.ggeAll.Progress := 4; frmMain.ggeAll.Progress := 4;
@ -500,7 +497,6 @@ begin
eStr.Clear; eStr.Clear;
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'); eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini');
UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini'); UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini');
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'));
end end
else else
AddSkipped; AddSkipped;
@ -509,6 +505,7 @@ begin
{ Upload server.dll / server_i486.so } { Upload server.dll / server_i486.so }
frmMain.tmrSpeed.Enabled := True; frmMain.tmrSpeed.Enabled := True;
frmMain.ggeItem.Progress := 0; frmMain.ggeItem.Progress := 0;
frmMain.IdFTP.ChangeDir('metamod');
frmMain.IdFTP.ChangeDir('bin'); frmMain.IdFTP.ChangeDir('bin');
if OS = osWindows then begin if OS = osWindows then begin
AddStatus('Uploading server.dll...', clBlack); AddStatus('Uploading server.dll...', clBlack);
@ -524,6 +521,8 @@ begin
AddStatus('Removing temporary files...', clBlack); AddStatus('Removing temporary files...', clBlack);
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so')); DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'));
AddDone; AddDone;
{ End } { End }
frmMain.IdFTP.Disconnect; frmMain.IdFTP.Disconnect;

View File

@ -473,9 +473,9 @@ begin
end; end;
procedure TfrmMain.cmdConnectClick(Sender: TObject); procedure TfrmMain.cmdConnectClick(Sender: TObject);
var i: integer; var i, k: integer;
eStr: TStringList; eStr: TStringList;
CurNode: TTreeNode; CurNode, CurNode2: TTreeNode;
Path: String; Path: String;
begin begin
if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then
@ -506,7 +506,7 @@ begin
eStr := TStringList.Create; eStr := TStringList.Create;
eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]); eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]);
for i := eStr.Count -1 downto 0 do begin for i := eStr.Count -1 downto 0 do begin
if eStr[i] = '' then if (eStr[i] = '') then
eStr.Delete(i); eStr.Delete(i);
end; end;
if (Copy(Path, Length(Path) -1, 1) <> '/') then if (Copy(Path, Length(Path) -1, 1) <> '/') then
@ -515,47 +515,39 @@ begin
trvDirectories.Enabled := True; trvDirectories.Enabled := True;
cmdConnect.Enabled := True; cmdConnect.Enabled := True;
cmdConnect.Caption := 'Disconnect'; cmdConnect.Caption := 'Disconnect';
// ... change to / and create all the directories ...
CurNode := nil;
if (Path <> '/') then begin
try
IdFTP.ChangeDir('/');
with GetAllDirs do begin
for i := 0 to Count -1 do begin
if (Assigned(CurNode)) then
trvDirectories.Items.AddChild(trvDirectories.Items.Add(nil, Strings[i]), 'Scanning...')
else begin
CurNode := trvDirectories.Items.Add(nil, Strings[i]);
trvDirectories.Items.AddChild(CurNode, 'Scanning...');
if (Pos('/' + CurNode.Text + '/', Path) = 0) then
CurNode := nil;
end
end;
Free;
end;
IdFTP.ChangeDir(Path);
except
if (IdFTP.Connected) then
IdFTP.ChangeDir(Path)
else
IdFTP.Connect;
end;
end;
// ... find directories in start path ... // ... find directories in start path ...
if eStr.Count <> 0 then begin CurNode := nil;
for i := 0 to eStr.Count -1 do begin CurNode2 := nil;
if (not ((i = 0) and (Assigned(CurNode)))) then if (eStr.Count <> 0) then begin
CurNode := trvDirectories.Items.AddChild(CurNode, eStr[i]); IdFTP.ChangeDir('/');
for i := 0 to eStr.Count do begin
try
with GetAllDirs do begin
for k := 0 to Count -1 do begin
if (i = eStr.Count) or (Strings[k] <> eStr[i]) then
trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[k]), 'Scanning...')
else
CurNode2 := trvDirectories.Items.AddChild(CurNode, Strings[k]);
end;
Free;
CurNode := CurNode2;
trvDirectories.Selected := CurNode;
Repaint;
Application.ProcessMessages;
end;
if (i <> eStr.Count) then
IdFTP.ChangeDir(eStr[i]);
except
IdFTP.CheckForDisconnect(False);
if (not IdFTP.Connected) then
IdFTP.Disconnect;
CurNode := trvDirectories.Items.AddChild(CurNode, eStr.Strings[i])
end;
end; end;
end; end;
trvDirectories.Selected := CurNode;
eStr.Free; eStr.Free;
// ... scan for directories ...
with GetAllDirs do begin
for i := 0 to Count -1 do
trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[i]), 'Scanning...');
Free;
end;
if Assigned(CurNode) then if Assigned(CurNode) then
CurNode.Expand(False); CurNode.Expand(False);