]> git.mxchange.org Git - friendica.git/blobdiff - bin/wait-for-connection
Add Drone CI
[friendica.git] / bin / wait-for-connection
diff --git a/bin/wait-for-connection b/bin/wait-for-connection
new file mode 100755 (executable)
index 0000000..67990f9
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/php
+
+<?php
+$timeout = 60;
+switch ($argc) {
+       case 4:
+               $timeout = (float)$argv[3];
+       case 3:
+               $host = $argv[1];
+               $port = (int)$argv[2];
+               break;
+       default:
+               fwrite(STDERR, 'Usage: '.$argv[0].' host port [timeout]'."\n");
+               exit(2);
+}
+if ($timeout < 0) {
+       fwrite(STDERR, 'Timeout must be greater than zero'."\n");
+       exit(2);
+}
+if ($port < 1) {
+       fwrite(STDERR, 'Port must be an integer greater than zero'."\n");
+       exit(2);
+}
+$socketTimeout = (float)ini_get('default_socket_timeout');
+if ($socketTimeout > $timeout) {
+       $socketTimeout = $timeout;
+}
+$stopTime = time() + $timeout;
+do {
+       $sock = @fsockopen($host, $port, $errno, $errstr, $socketTimeout);
+       if ($sock !== false) {
+               fclose($sock);
+               fwrite(STDOUT, "\n");
+               exit(0);
+       }
+       sleep(1);
+       fwrite(STDOUT, '.');
+} while (time() < $stopTime);
+fwrite(STDOUT, "\n");
+exit(1);
\ No newline at end of file