pkgcommands.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. { TCommandUnzip }
  18. TCommandUnzip = Class(TPackagehandler)
  19. Public
  20. Function Execute(const Args:TActionArgs):boolean;override;
  21. end;
  22. { TCommandBuild }
  23. TCommandBuild = Class(TPackagehandler)
  24. Public
  25. Function Execute(const Args:TActionArgs):boolean;override;
  26. end;
  27. { TCommandInstall }
  28. TCommandInstall = Class(TPackagehandler)
  29. Public
  30. Function Execute(const Args:TActionArgs):boolean;override;
  31. end;
  32. implementation
  33. uses
  34. pkgmessages,
  35. pkgglobals,
  36. pkgoptions,
  37. pkgdownload;
  38. function TCommandUpdate.Execute(const Args:TActionArgs):boolean;
  39. begin
  40. DownloadFile(Defaults.RemotePackagesFile,Defaults.LocalPackagesFile);
  41. end;
  42. function TCommandDownload.Execute(const Args:TActionArgs):boolean;
  43. begin
  44. if not assigned(CurrentPackage) then
  45. Error(SErrNoPackageSpecified);
  46. if not FileExists(PackageLocalArchive) then
  47. ExecuteAction(CurrentPackage,'downloadpackage',Args);
  48. end;
  49. function TCommandUnzip.Execute(const Args:TActionArgs):boolean;
  50. begin
  51. if not assigned(CurrentPackage) then
  52. Error(SErrNoPackageSpecified);
  53. ExecuteAction(CurrentPackage,'unziparchive',Args);
  54. end;
  55. function TCommandBuild.Execute(const Args:TActionArgs):boolean;
  56. begin
  57. if assigned(CurrentPackage) then
  58. begin
  59. if not DirectoryExists(PackageBuildPath) then
  60. ExecuteAction(CurrentPackage,'unziparchive',Args);
  61. end;
  62. ExecuteAction(CurrentPackage,'fpmakebuild',Args);
  63. end;
  64. function TCommandInstall.Execute(const Args:TActionArgs):boolean;
  65. begin
  66. ExecuteAction(CurrentPackage,'build',Args);
  67. ExecuteAction(CurrentPackage,'fpmakeinstall',Args);
  68. end;
  69. initialization
  70. RegisterPkgHandler('update',TCommandUpdate);
  71. RegisterPkgHandler('download',TCommandDownload);
  72. RegisterPkgHandler('unzip',TCommandUnzip);
  73. RegisterPkgHandler('build',TCommandBuild);
  74. RegisterPkgHandler('install',TCommandInstall);
  75. end.