File: wait_for_sftp.php

package info (click to toggle)
php-league-flysystem 3.29.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,316 kB
  • sloc: php: 14,623; makefile: 48; sh: 31
file content (38 lines) | stat: -rw-r--r-- 895 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php

use League\Flysystem\PhpseclibV2\SftpConnectionProvider as V2Provider;
use League\Flysystem\PhpseclibV3\SftpConnectionProvider as V3Provider;
use phpseclib3\Net\SFTP;

include __DIR__ . '/../vendor/autoload.php';

$providerName = class_exists(SFTP::class) ? V3Provider::class : V2Provider::class;
$connectionProvider = $providerName::fromArray(
    [
        'host' => 'localhost',
        'username' => 'foo',
        'password' => 'pass',
        'port' => 2222,
    ]
);

$start = time();
$connected = false;

while (time() - $start < 60) {
    try {
        $connectionProvider->provideConnection();
        $connected = true;
        break;
    } catch (Throwable $exception) {
        echo($exception);
        usleep(10000);
    }
}

if ( ! $connected) {
    fwrite(STDERR, "Unable to start SFTP server.\n");
    exit(1);
}

fwrite(STDOUT, "Detected SFTP server successfully.\n");