mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-24 04:39:10 +02:00
* Added uninstall command to fppkg
git-svn-id: trunk@29439 -
This commit is contained in:
parent
e2b241e0ee
commit
96ea6b0001
@ -83,6 +83,13 @@ type
|
||||
Procedure Execute;override;
|
||||
end;
|
||||
|
||||
{ TCommandUnInstall }
|
||||
|
||||
TCommandUnInstall = Class(TPackagehandler)
|
||||
Public
|
||||
Procedure Execute;override;
|
||||
end;
|
||||
|
||||
{ TCommandClean }
|
||||
|
||||
TCommandClean = Class(TPackagehandler)
|
||||
@ -121,6 +128,43 @@ type
|
||||
var
|
||||
DependenciesDepth: integer;
|
||||
|
||||
{ TCommandUnInstall }
|
||||
|
||||
procedure TCommandUnInstall.Execute;
|
||||
var
|
||||
AvailP: TFPPackage;
|
||||
APackage: TFPPackage;
|
||||
begin
|
||||
if PackageName<>'' then
|
||||
begin
|
||||
if (PackageName=CmdLinePackageName) then
|
||||
begin
|
||||
ExecuteAction(PackageName,'unzip');
|
||||
end
|
||||
else if (PackageName<>CurrentDirPackageName) then
|
||||
begin
|
||||
AvailP:=AvailableRepository.FindPackage(PackageName);
|
||||
if not assigned(AvailP) then
|
||||
begin
|
||||
APackage := InstalledRepository.FindPackage(PackageName);
|
||||
if assigned(APackage) and (APackage.SourcePath<>'') then
|
||||
begin
|
||||
AvailP := AvailableRepository.AddPackage(PackageName);
|
||||
AvailP.Assign(APackage);
|
||||
// The package won't be recompiled, but should be handled as such.
|
||||
AvailP.RecompileBroken:=true;
|
||||
end
|
||||
else
|
||||
begin
|
||||
// The package is not available locally, download and unzip it.
|
||||
ExecuteAction(PackageName,'unzip');
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
ExecuteAction(PackageName,'fpmakeuninstall');
|
||||
end;
|
||||
|
||||
{ TCommandListSettings }
|
||||
|
||||
procedure TCommandListSettings.Execute;
|
||||
@ -535,6 +579,7 @@ initialization
|
||||
RegisterPkgHandler('compile',TCommandCompile);
|
||||
RegisterPkgHandler('build',TCommandBuild);
|
||||
RegisterPkgHandler('install',TCommandInstall);
|
||||
RegisterPkgHandler('uninstall',TCommandUnInstall);
|
||||
RegisterPkgHandler('clean',TCommandClean);
|
||||
RegisterPkgHandler('archive',TCommandArchive);
|
||||
RegisterPkgHandler('installdependencies',TCommandInstallDependencies);
|
||||
|
@ -58,6 +58,12 @@ type
|
||||
Procedure Execute;override;
|
||||
end;
|
||||
|
||||
{ TFPMakeRunnerUnInstall }
|
||||
|
||||
TFPMakeRunnerUnInstall = Class(TFPMakeRunner)
|
||||
Public
|
||||
Procedure Execute;override;
|
||||
end;
|
||||
|
||||
{ TFPMakeRunnerClean }
|
||||
|
||||
@ -381,6 +387,12 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
procedure TFPMakeRunnerUnInstall.Execute;
|
||||
begin
|
||||
RunFPMake('uninstall');
|
||||
end;
|
||||
|
||||
|
||||
procedure TFPMakeRunnerClean.Execute;
|
||||
begin
|
||||
RunFPMake('clean');
|
||||
@ -404,6 +416,7 @@ initialization
|
||||
RegisterPkgHandler('fpmakecompile',TFPMakeRunnerCompile);
|
||||
RegisterPkgHandler('fpmakebuild',TFPMakeRunnerBuild);
|
||||
RegisterPkgHandler('fpmakeinstall',TFPMakeRunnerInstall);
|
||||
RegisterPkgHandler('fpmakeuninstall',TFPMakeRunnerUnInstall);
|
||||
RegisterPkgHandler('fpmakeclean',TFPMakeRunnerClean);
|
||||
RegisterPkgHandler('fpmakemanifest',TFPMakeRunnerManifest);
|
||||
RegisterPkgHandler('fpmakearchive',TFPMakeRunnerArchive);
|
||||
|
@ -104,6 +104,7 @@ begin
|
||||
Writeln(' build Build package');
|
||||
Writeln(' compile Compile package');
|
||||
Writeln(' install Install package');
|
||||
Writeln(' uninstall Uninstall package');
|
||||
Writeln(' clean Clean package');
|
||||
Writeln(' archive Create archive of package');
|
||||
Writeln(' download Download package');
|
||||
|
Loading…
Reference in New Issue
Block a user