34 lines
1.3 KiB
PHP
34 lines
1.3 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, AliasName FROM PyPi ORDER BY LibName");
|
|
|
|
$requirements = [];
|
|
foreach ($stmt as $row) {
|
|
// Standard requirements.txt format is usually "PackageName" or "PackageName==Version"
|
|
// If AliasName is used for versioning, you could use: $row['LibName'] . "==" . $row['AliasName']
|
|
$requirements[] = $row['LibName'];
|
|
}
|
|
|
|
// 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");
|
|
}
|