Linux.hx 704 B

12345678910111213141516171819202122
  1. package runci;
  2. import runci.System.*;
  3. class Linux {
  4. static public function isAptPackageInstalled(aptPackage:String):Bool {
  5. return commandSucceed("dpkg-query", ["-W", "-f='${Status}'", aptPackage]);
  6. }
  7. static public function requireAptPackages(packages:Array<String>):Void {
  8. var notYetInstalled = [for (p in packages) if (!isAptPackageInstalled(p)) p];
  9. if (notYetInstalled.length > 0) {
  10. var aptCacheDir = Sys.getEnv("APT_CACHE_DIR");
  11. var baseCommand = if (aptCacheDir != null) {
  12. ["apt-get", "-o", 'dir::cache::archives=${aptCacheDir}', "install", "-qqy"];
  13. } else {
  14. ["apt-get", "install", "-qqy"];
  15. };
  16. runCommand("sudo", baseCommand.concat(notYetInstalled), true);
  17. }
  18. }
  19. }