Add SQL bridge, support functions, cron jobs, error handling, and PyPI version pinning so Python triggers match PHP capabilities. Co-authored-by: Cursor <cursoragent@cursor.com>
36 lines
1.2 KiB
PHP
36 lines
1.2 KiB
PHP
<?php
|
|
require_once __DIR__. "/.env.php"; // DB_USER, DB_PASS, DB_NAME, DB_HOST
|
|
// Setup PDO
|
|
$dsn = "mysql:host=".DB_HOST.";dbname=SYS_PRD_BND;charset=utf8mb4";
|
|
$options = [
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
];
|
|
|
|
try {
|
|
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
|
|
|
|
// Fetch dependencies from PyPi table
|
|
// Note: We select LibName. If AliasName represents a specific version or URI, it can be appended.
|
|
$stmt = $pdo->query("SELECT LibName, VersionOrTag FROM PyPi ORDER BY LibName");
|
|
|
|
$requirements = [];
|
|
foreach ($stmt as $row) {
|
|
$line = $row['LibName'];
|
|
if (!empty($row['VersionOrTag'])) {
|
|
$line .= '==' . $row['VersionOrTag'];
|
|
}
|
|
$requirements[] = $line;
|
|
}
|
|
|
|
// Build requirements.txt content (Plain Text, one per line)
|
|
$output = implode("\n", $requirements);
|
|
|
|
// Write to file (stdout for Makefile redirection)
|
|
file_put_contents('php://stdout', $output . "\n");
|
|
file_put_contents("php://stderr", "✅ requirements.txt generated successfully.\n");
|
|
|
|
} catch (PDOException $e) {
|
|
file_put_contents("php://stderr", "❌ Database error: " . $e->getMessage() . "\n");
|
|
}
|