pkgcommands.pp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. unit pkgcommands;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils,pkghandler;
  6. implementation
  7. uses
  8. pkgmessages,
  9. pkgglobals,
  10. pkgoptions,
  11. pkgdownload,
  12. pkgrepos;
  13. type
  14. { TCommandAddConfig }
  15. TCommandAddConfig = Class(TPackagehandler)
  16. Public
  17. Function Execute(const Args:TActionArgs):boolean;override;
  18. end;
  19. { TCommandUpdate }
  20. TCommandUpdate = Class(TPackagehandler)
  21. Public
  22. Function Execute(const Args:TActionArgs):boolean;override;
  23. end;
  24. { TCommandAvail }
  25. TCommandAvail = Class(TPackagehandler)
  26. Public
  27. Function Execute(const Args:TActionArgs):boolean;override;
  28. end;
  29. { TCommandScanPackages }
  30. TCommandScanPackages = Class(TPackagehandler)
  31. Public
  32. Function Execute(const Args:TActionArgs):boolean;override;
  33. end;
  34. { TCommandDownload }
  35. TCommandDownload = Class(TPackagehandler)
  36. Public
  37. Function Execute(const Args:TActionArgs):boolean;override;
  38. end;
  39. { TCommandUnzip }
  40. TCommandUnzip = Class(TPackagehandler)
  41. Public
  42. Function Execute(const Args:TActionArgs):boolean;override;
  43. end;
  44. { TCommandBuild }
  45. TCommandBuild = Class(TPackagehandler)
  46. Public
  47. Function Execute(const Args:TActionArgs):boolean;override;
  48. end;
  49. { TCommandInstall }
  50. TCommandInstall = Class(TPackagehandler)
  51. Public
  52. Function Execute(const Args:TActionArgs):boolean;override;
  53. end;
  54. function TCommandAddConfig.Execute(const Args:TActionArgs):boolean;
  55. begin
  56. {
  57. Log(vInfo,SLogGeneratingCompilerConfig,[S]);
  58. Options.InitCompilerDefaults(Args[2]);
  59. Options.SaveCompilerToFile(S);
  60. }
  61. Result:=true;
  62. end;
  63. function TCommandUpdate.Execute(const Args:TActionArgs):boolean;
  64. begin
  65. DownloadFile(Options.RemotePackagesFile,Options.LocalPackagesFile);
  66. LoadLocalRepository;
  67. Result:=true;
  68. end;
  69. function TCommandAvail.Execute(const Args:TActionArgs):boolean;
  70. begin
  71. ListRepository;
  72. Result:=true;
  73. end;
  74. function TCommandScanPackages.Execute(const Args:TActionArgs):boolean;
  75. begin
  76. RebuildRepository;
  77. ListRepository;
  78. SaveRepository;
  79. Result:=true;
  80. end;
  81. function TCommandDownload.Execute(const Args:TActionArgs):boolean;
  82. begin
  83. if not assigned(CurrentPackage) then
  84. Error(SErrNoPackageSpecified);
  85. if not FileExists(PackageLocalArchive) then
  86. ExecuteAction(CurrentPackage,'downloadpackage',Args);
  87. Result:=true;
  88. end;
  89. function TCommandUnzip.Execute(const Args:TActionArgs):boolean;
  90. begin
  91. if not assigned(CurrentPackage) then
  92. Error(SErrNoPackageSpecified);
  93. ExecuteAction(CurrentPackage,'unziparchive',Args);
  94. Result:=true;
  95. end;
  96. function TCommandBuild.Execute(const Args:TActionArgs):boolean;
  97. begin
  98. if assigned(CurrentPackage) then
  99. begin
  100. if not DirectoryExists(PackageBuildPath) then
  101. ExecuteAction(CurrentPackage,'unziparchive',Args);
  102. end;
  103. ExecuteAction(CurrentPackage,'fpmakebuild',Args);
  104. Result:=true;
  105. end;
  106. function TCommandInstall.Execute(const Args:TActionArgs):boolean;
  107. begin
  108. ExecuteAction(CurrentPackage,'build',Args);
  109. ExecuteAction(CurrentPackage,'fpmakeinstall',Args);
  110. Result:=true;
  111. end;
  112. initialization
  113. RegisterPkgHandler('update',TCommandUpdate);
  114. RegisterPkgHandler('avail',TCommandAvail);
  115. RegisterPkgHandler('scan',TCommandScanPackages);
  116. RegisterPkgHandler('download',TCommandDownload);
  117. RegisterPkgHandler('unzip',TCommandUnzip);
  118. RegisterPkgHandler('build',TCommandBuild);
  119. RegisterPkgHandler('install',TCommandInstall);
  120. end.