tweeper: allow running tweeper from vendor/bin also when it's not a symlink
authorAntonio Ospite <ao2@ao2.it>
Sat, 10 Dec 2016 18:34:57 +0000 (19:34 +0100)
committerAntonio Ospite <ao2@ao2.it>
Sat, 10 Dec 2016 20:35:23 +0000 (21:35 +0100)
tweeper

diff --git a/tweeper b/tweeper
index 6256e20..d4b04e3 100755 (executable)
--- a/tweeper
+++ b/tweeper
@@ -6,4 +6,17 @@
  * CLI file to run tweeper.
  */
 
  * CLI file to run tweeper.
  */
 
-require dirname(__FILE__) . '/tweeper.php';
+if (preg_match('/' . preg_quote('/vendor/bin', '/') . '$/', __DIR__)) {
+  /*
+   * This covers the case of tweeper running from a "vendor/bin" directory in
+   * a composer setup, but with the tweeper executable _not_ being a symlink.
+   *
+   * This can happen when the filesystem does not support symlinks.
+   */
+  $package_name = 'ao2/tweeper';
+  require __DIR__ . '/../' . $package_name . '/tweeper.php';
+}
+else {
+  /* For the other cases look at the autoload.php required by tweeper.php */
+  require __DIR__ . '/tweeper.php';
+}