pkgcommands.pp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. { TCommandAvail }
  13. TCommandAvail = Class(TPackagehandler)
  14. Public
  15. Function Execute(const Args:TActionArgs):boolean;override;
  16. end;
  17. { TCommandScanPackages }
  18. TCommandScanPackages = Class(TPackagehandler)
  19. Public
  20. Function Execute(const Args:TActionArgs):boolean;override;
  21. end;
  22. { TCommandDownload }
  23. TCommandDownload = Class(TPackagehandler)
  24. Public
  25. Function Execute(const Args:TActionArgs):boolean;override;
  26. end;
  27. { TCommandUnzip }
  28. TCommandUnzip = Class(TPackagehandler)
  29. Public
  30. Function Execute(const Args:TActionArgs):boolean;override;
  31. end;
  32. { TCommandBuild }
  33. TCommandBuild = Class(TPackagehandler)
  34. Public
  35. Function Execute(const Args:TActionArgs):boolean;override;
  36. end;
  37. { TCommandInstall }
  38. TCommandInstall = Class(TPackagehandler)
  39. Public
  40. Function Execute(const Args:TActionArgs):boolean;override;
  41. end;
  42. implementation
  43. uses
  44. pkgmessages,
  45. pkgglobals,
  46. pkgoptions,
  47. pkgdownload,
  48. pkgrepos;
  49. function TCommandUpdate.Execute(const Args:TActionArgs):boolean;
  50. begin
  51. DownloadFile(Defaults.RemotePackagesFile,Defaults.LocalPackagesFile);
  52. LoadLocalRepository;
  53. end;
  54. function TCommandAvail.Execute(const Args:TActionArgs):boolean;
  55. begin
  56. ListRepository;
  57. end;
  58. function TCommandScanPackages.Execute(const Args:TActionArgs):boolean;
  59. begin
  60. RebuildRepository;
  61. ListRepository;
  62. SaveRepository;
  63. end;
  64. function TCommandDownload.Execute(const Args:TActionArgs):boolean;
  65. begin
  66. if not assigned(CurrentPackage) then
  67. Error(SErrNoPackageSpecified);
  68. if not FileExists(PackageLocalArchive) then
  69. ExecuteAction(CurrentPackage,'downloadpackage',Args);
  70. end;
  71. function TCommandUnzip.Execute(const Args:TActionArgs):boolean;
  72. begin
  73. if not assigned(CurrentPackage) then
  74. Error(SErrNoPackageSpecified);
  75. ExecuteAction(CurrentPackage,'unziparchive',Args);
  76. end;
  77. function TCommandBuild.Execute(const Args:TActionArgs):boolean;
  78. begin
  79. if assigned(CurrentPackage) then
  80. begin
  81. if not DirectoryExists(PackageBuildPath) then
  82. ExecuteAction(CurrentPackage,'unziparchive',Args);
  83. end;
  84. ExecuteAction(CurrentPackage,'fpmakebuild',Args);
  85. end;
  86. function TCommandInstall.Execute(const Args:TActionArgs):boolean;
  87. begin
  88. ExecuteAction(CurrentPackage,'build',Args);
  89. ExecuteAction(CurrentPackage,'fpmakeinstall',Args);
  90. end;
  91. initialization
  92. RegisterPkgHandler('update',TCommandUpdate);
  93. RegisterPkgHandler('avail',TCommandAvail);
  94. RegisterPkgHandler('scan',TCommandScanPackages);
  95. RegisterPkgHandler('download',TCommandDownload);
  96. RegisterPkgHandler('unzip',TCommandUnzip);
  97. RegisterPkgHandler('build',TCommandBuild);
  98. RegisterPkgHandler('install',TCommandInstall);
  99. end.