script to copy pear package dependencies
authorChristian Weiske <cweiske@cweiske.de>
Wed, 26 Feb 2014 17:51:33 +0000 (18:51 +0100)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 26 Feb 2014 17:51:33 +0000 (18:51 +0100)
.gitignore
bin/fetch-deps.php [new file with mode: 0755]
deps.txt [new file with mode: 0644]

index fc7cfcc69f2f7f004aad175cb40df3e847ee8176..b76dc57871ec02500bf13258cca143f39039aeb5 100644 (file)
@@ -1,2 +1,3 @@
 /data/bdrem.config.php
 /dist/
 /data/bdrem.config.php
 /dist/
+/lib
diff --git a/bin/fetch-deps.php b/bin/fetch-deps.php
new file mode 100755 (executable)
index 0000000..112a1f0
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/env php
+<?php
+/**
+ * reads pear package dependencies from deps.txt and copies them into lib/
+ */
+$deps = file(__DIR__ . '/../deps.txt');
+$libdir = __DIR__ . '/../lib/';
+
+error_reporting(error_reporting() & ~E_STRICT & ~E_DEPRECATED);
+require_once 'PEAR/Registry.php';
+$reg = new PEAR_Registry();
+
+foreach ($deps as $dep) {
+    $dep = trim($dep);
+    list($channel, $pkgname) = explode('/', $dep);
+    $pkginfo = $reg->packageInfo($pkgname, null, $channel);
+    if ($pkginfo === null) {
+        echo 'Package not found: ' . $dep . "\n";
+        exit(1);
+    }
+
+    echo "Copying " . $channel . '/' . $pkgname . "\n";
+    $files = 0;
+    foreach ($pkginfo['filelist'] as $fileinfo) {
+        if ($fileinfo['role'] != 'php') {
+            continue;
+        }
+
+        $orig = $fileinfo['installed_as'];
+        $path = $libdir . ltrim(
+            $fileinfo['baseinstalldir'] . '/' . $fileinfo['name'], '/'
+        );
+        $dir = dirname($path);
+        if (!is_dir($dir)) {
+            mkdir($dir, 0777, true);
+        }
+        if (!copy($orig, $path)) {
+            echo " Error copying $orig to $path\n";
+            exit(2);
+        }
+        ++$files;
+    }
+    echo " copied $files files\n";
+}
+?>
diff --git a/deps.txt b/deps.txt
new file mode 100644 (file)
index 0000000..083560f
--- /dev/null
+++ b/deps.txt
@@ -0,0 +1,4 @@
+pear.php.net/Console_Color2
+pear.php.net/Console_CommandLine
+pear.php.net/Console_Table
+pear.php.net/Mail_mime