function file_hash($file) { if (file_exists($file)) { return md5_file($file); } else { return ''; } } function writeout($data, $file) { $md5d = md5($data); $md5f = file_hash($file); $bf = basename($file); if ($md5d == $md5f) { echo "{$bf} unchanged\n"; } else { file_put_contents($file, $data); echo "wrote new {$bf}\n"; } } $config = new profile($template_dir . '/config.h'); foreach ($profiles as $prof) { add_profile($config, $prof); } writeout($config->generate(), "{$base_dir}/include/yarns/config.h"); $makefile = new profile($template_dir . '/Makefile'); foreach ($profiles as $prof) { add_profile($makefile, $prof); } writeout($makefile->generate(), "{$base_dir}/Makefile"); echo "Built configuration from profiles: " . implode(', ', $profiles) . "\n";
} $fp1 = gzopen("Packages.gz", "w"); $fp2 = fopen("Packages", "w"); $od = opendir("./") or die("Could not dir.\n"); $first = true; while (($file = readdir($od)) !== false) { if ($file != "." && $file != "..") { $ext = substr($file, -4, 4); if ($ext == ".ipk" || $ext == ".deb") { echo "Reading \"" . $file . "\".\n"; $result = ipkg_parse($file); $md5sum = md5sum($file); if ($first == true) { $first = false; } else { writeout("\n"); } foreach ($result["control"] as $key => $value) { $keyl = strtolower($key); if (strlen($key) > 0 && strlen($value) > 0 && $keyl != "filename" && $keyl != "size" && $keyl != "md5sum") { writeout($key . ": " . $value . "\n"); } } writeout("Filename: " . $file . "\n"); writeout("Size: " . filesize($file) . "\n"); writeout("MD5Sum: " . $md5sum . "\n"); } } } gzclose($fp1); gzclose($fp2);