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;
var eStr: TStringList;
i: integer;
CopyConfig, eFound: Boolean;
CopyConfig: Boolean;
begin
frmMain.cmdCancel.Show;
frmMain.cmdNext.Hide;
@ -418,6 +417,7 @@ begin
frmMain.ggeItem.MaxValue := 3;
frmMain.ggeItem.Progress := 0;
StartTime := Now;
{ Unpack }
AddStatus('Unpacking files...', clBlack);
if not Unpack(Source) then begin
@ -434,7 +434,7 @@ begin
frmMain.ggeItem.Progress := 0;
AddStatus('Creating directories...', clBlack);
if not eFound then begin
try
FTPMakeDir('addons');
frmMain.IdFTP.ChangeDir('addons');
frmMain.ggeItem.Progress := 1;
@ -444,12 +444,11 @@ begin
FTPMakeDir('bin');
frmMain.ggeItem.Progress := 3;
AddDone;
end
else
except
AddSkipped;
end;
{ Create/Edit VDF Plugin }
CopyConfig := True;
eFound := False;
frmMain.ggeAll.Progress := 3;
frmMain.ggeItem.Progress := 0;
@ -457,7 +456,7 @@ begin
AddStatus('Creating VDF Plugin...', clBlack);
eStr := TStringList.Create;
try
frmMain.IdFTP.ChangeDir('addons');
frmMain.IdFTP.ChangeDirUp;
frmMain.ggeItem.Progress := 1;
DownloadFile('metamod.vdf', 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
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
mrNo: CopyConfig := False;
mrCancel: begin
@ -489,7 +487,6 @@ begin
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf');
UploadFile(ExtractFilePath(ParamStr(0)) + 'metamod.vdf', 'metamod.vdf');
frmMain.ggeItem.Progress := 3;
AddDone;
end;
{ Upload metaplugins.ini }
frmMain.ggeAll.Progress := 4;
@ -500,7 +497,6 @@ begin
eStr.Clear;
eStr.SaveToFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini');
UploadFile(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini', 'metaplugins.ini');
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'));
end
else
AddSkipped;
@ -509,6 +505,7 @@ begin
{ Upload server.dll / server_i486.so }
frmMain.tmrSpeed.Enabled := True;
frmMain.ggeItem.Progress := 0;
frmMain.IdFTP.ChangeDir('metamod');
frmMain.IdFTP.ChangeDir('bin');
if OS = osWindows then begin
AddStatus('Uploading server.dll...', clBlack);
@ -524,6 +521,8 @@ begin
AddStatus('Removing temporary files...', clBlack);
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server.dll'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'server_i486.so'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metamod.vdf'));
DeleteFile(PChar(ExtractFilePath(ParamStr(0)) + 'metaplugins.ini'));
AddDone;
{ End }
frmMain.IdFTP.Disconnect;

View File

@ -473,9 +473,9 @@ begin
end;
procedure TfrmMain.cmdConnectClick(Sender: TObject);
var i: integer;
var i, k: integer;
eStr: TStringList;
CurNode: TTreeNode;
CurNode, CurNode2: TTreeNode;
Path: String;
begin
if (Trim(txtHost.Text) = '') or (Trim(txtUsername.Text) = '') then
@ -506,7 +506,7 @@ begin
eStr := TStringList.Create;
eStr.Text := StringReplace(Path, '/', #13, [rfReplaceAll]);
for i := eStr.Count -1 downto 0 do begin
if eStr[i] = '' then
if (eStr[i] = '') then
eStr.Delete(i);
end;
if (Copy(Path, Length(Path) -1, 1) <> '/') then
@ -515,47 +515,39 @@ begin
trvDirectories.Enabled := True;
cmdConnect.Enabled := True;
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 ...
if eStr.Count <> 0 then begin
for i := 0 to eStr.Count -1 do begin
if (not ((i = 0) and (Assigned(CurNode)))) then
CurNode := trvDirectories.Items.AddChild(CurNode, eStr[i]);
end;
end;
trvDirectories.Selected := CurNode;
eStr.Free;
// ... scan for directories ...
CurNode := nil;
CurNode2 := nil;
if (eStr.Count <> 0) then begin
IdFTP.ChangeDir('/');
for i := 0 to eStr.Count do begin
try
with GetAllDirs do begin
for i := 0 to Count -1 do
trvDirectories.Items.AddChild(trvDirectories.Items.AddChild(CurNode, Strings[i]), 'Scanning...');
Free;
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;
eStr.Free;
if Assigned(CurNode) then
CurNode.Expand(False);