/ Published in: PHP
Script per copiar els fitxers canviats en una revisió git al servidor remot via sftp, using PHP Secure Communications Library (phpseclib): http://sourceforge.net/projects/phpseclib/.
Útil per usar amb 1and1.
Útil per usar amb 1and1.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
<?php /** * Script per copiar els fitxers canviats en una revisió al servidor remot via sftp, using phpseclib (v. 0.3.1): http://sourceforge.net/projects/phpseclib/. */ if ($argc == 1) { echo "\nFalta parametre núm. del changeset (obligatori)\n"; echo "> php deploy.php c032de81340 [--force] [--debug]\n\n"; exit; } // Parametres: // changeset $changeSet = (string) $argv[1]; // --force $force = false; // --debug (opcional) $debug = false; for ($i=2; $i < $argc; $i++) { if ($argv[$i] == '--force') { $force = true; } if ($argv[$i] == '--debug') { $debug = true; } } echo "\n[$changeSet]\n"; echo "\nError en git"; die; } echo "\nPublicando changeset [$changesetFull]\n$description\n\n"; include('Net/SFTP.php'); if (DEBUG) { } $sftp = new Net_SFTP(REMOTE_SERVER); if (!$sftp->login(USERNAME, PWD)) { } foreach ($output as $fileName) { deployFile($fileName, $sftp); } echo "\n"; // ---------------------------------------------------------------------------------------- /** * Esta función se encarga de copiar el archivo local * al servidor remoto. * */ function deployFile($fileNamePath, $sftp) { $messageIgnored = ''; if ($fileName != 'databases.yml') { $local = WORKING_BASE . $fileNamePath; $remote = REMOTE_BASE . $fileNamePath; // copies filename.local to filename.remote on the SFTP server if (FORCE) { $ok = $sftp->put($remote, $local, NET_SFTP_LOCAL_FILE); echo (($ok)? "[OK] " : "\nERROR!\n"); if (DEBUG) { echo $sftp->getSFTPLog(); } } // system($command, $retval); // echo ' ['.$retval."]\n"; } else { if (FORCE) { $messageIgnored = "'$fileName' NO publicat per precaució!\n\n"; } else { $messageIgnored = "'$fileName' NO es publicarà  per precaució.\n\n"; } } if (FORCE) { echo "$fileNamePath -- $fileName => $pathToFileName"; } else { echo "$fileNamePath"; } echo "\n"; echo $messageIgnored; }