mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 16:59:45 +01: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