123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- unit pkgcommands;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils,pkghandler;
- type
- { TCommandUpdate }
- TCommandUpdate = Class(TPackagehandler)
- Public
- Function Execute(const Args:TActionArgs):boolean;override;
- end;
-
- { TCommandDownload }
- TCommandDownload = Class(TPackagehandler)
- Public
- Function Execute(const Args:TActionArgs):boolean;override;
- end;
- { TCommandBuild }
- TCommandBuild = Class(TPackagehandler)
- Public
- Function Execute(const Args:TActionArgs):boolean;override;
- end;
- { TCommandInstall }
- TCommandInstall = Class(TPackagehandler)
- Public
- Function Execute(const Args:TActionArgs):boolean;override;
- end;
- implementation
- uses
- pkgmessages,
- fpmktype,
- fprepos,
- fpxmlrep;
-
- function TCommandUpdate.Execute(const Args:TActionArgs):boolean;
- Var
- X : TFPXMLRepositoryHandler;
- P : TFPPackage;
- R : TFPRepository;
- begin
- {$warning TODO remove this hack}
- R:=TFPRepository.Create(nil);
- P:=R.AddPackage('FirstPackage');
- P.Author:='Michael Van Canneyt';
- P.URL:='http://www.freepascal.org/packages/firstpackage.zip';
- P.Email:='[email protected]';
- P.Version.AsString:='1.2.3';
- P.Description:='First package in the repository. Provides basic information.';
- P.OSes:=[Win32,linux];
- P.CPUs:=[i386,x86_64];
- X:=TFPXMLRepositoryHandler.Create;
- With X do
- try
- SaveToXml(R,Defaults.LocalRepository);
- finally
- Free;
- end;
- FreeAndNil(R);
- end;
- function TCommandDownload.Execute(const Args:TActionArgs):boolean;
- begin
- ActionStack.Push(CurrentPackage,'downloadpackage',Args);
- end;
- function TCommandBuild.Execute(const Args:TActionArgs):boolean;
- begin
- ActionStack.Push(CurrentPackage,'fpmakebuild',Args);
- ActionStack.Push(CurrentPackage,'compilefpmake',Args);
- end;
- function TCommandInstall.Execute(const Args:TActionArgs):boolean;
- begin
- ActionStack.Push(CurrentPackage,'fpmakeinstall',Args);
- ActionStack.Push(CurrentPackage,'build',Args);
- end;
- initialization
- RegisterPkgHandler('update',TCommandUpdate);
- RegisterPkgHandler('download',TCommandDownload);
- RegisterPkgHandler('build',TCommandBuild);
- RegisterPkgHandler('install',TCommandInstall);
- end.
|