pkgcommands.pp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. unit pkgcommands;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils,pkghandler;
  6. type
  7. { TCommandUpdate }
  8. TCommandUpdate = Class(TPackagehandler)
  9. Public
  10. Function Execute(const Args:TActionArgs):boolean;override;
  11. end;
  12. { TCommandDownload }
  13. TCommandDownload = Class(TPackagehandler)
  14. Public
  15. Function Execute(const Args:TActionArgs):boolean;override;
  16. end;
  17. { TCommandBuild }
  18. TCommandBuild = Class(TPackagehandler)
  19. Public
  20. Function Execute(const Args:TActionArgs):boolean;override;
  21. end;
  22. { TCommandInstall }
  23. TCommandInstall = Class(TPackagehandler)
  24. Public
  25. Function Execute(const Args:TActionArgs):boolean;override;
  26. end;
  27. implementation
  28. uses
  29. pkgmessages,
  30. pkgglobals,
  31. pkgoptions,
  32. pkgdownload;
  33. function TCommandUpdate.Execute(const Args:TActionArgs):boolean;
  34. begin
  35. DownloadFile(Defaults.RemotePackagesFile,Defaults.LocalPackagesFile);
  36. end;
  37. function TCommandDownload.Execute(const Args:TActionArgs):boolean;
  38. begin
  39. if not assigned(CurrentPackage) then
  40. Error(SErrNoPackageSpecified);
  41. if not FileExists(PackageLocalArchive) then
  42. ExecuteAction(CurrentPackage,'downloadpackage',Args);
  43. end;
  44. function TCommandBuild.Execute(const Args:TActionArgs):boolean;
  45. begin
  46. if assigned(CurrentPackage) then
  47. begin
  48. if not FileExists(PackageLocalArchive) then
  49. ExecuteAction(CurrentPackage,'downloadpackage',Args);
  50. if not DirectoryExists(PackageBuildPath) then
  51. ExecuteAction(CurrentPackage,'unziparchive',Args);
  52. end;
  53. ExecuteAction(CurrentPackage,'fpmakebuild',Args);
  54. ExecuteAction(CurrentPackage,'compilefpmake',Args);
  55. end;
  56. function TCommandInstall.Execute(const Args:TActionArgs):boolean;
  57. begin
  58. ExecuteAction(CurrentPackage,'build',Args);
  59. ExecuteAction(CurrentPackage,'fpmakeinstall',Args);
  60. end;
  61. initialization
  62. RegisterPkgHandler('update',TCommandUpdate);
  63. RegisterPkgHandler('download',TCommandDownload);
  64. RegisterPkgHandler('build',TCommandBuild);
  65. RegisterPkgHandler('install',TCommandInstall);
  66. end.