81 lines
2.0 KiB
PHP
Executable File
81 lines
2.0 KiB
PHP
Executable File
#!/usr/bin/php
|
|
<?
|
|
|
|
// Polyfill
|
|
// Fill a volume with many small files
|
|
|
|
if (count($argv) < 5) {
|
|
echo "Usage: php polyfill.php <dir containing sample files> <files> <deep> <disk image destination>\n";
|
|
echo "ex.: ./polyfill.php sample_files 5000 1 ~/Desktop/\n";
|
|
die;
|
|
}
|
|
|
|
$sample = $argv[1];
|
|
$total = $argv[2];
|
|
$deep = $argv[3];
|
|
$dest = $argv[4];
|
|
|
|
$dmg = $dest."/Polyfill.sparsebundle";
|
|
echo $dmg;
|
|
|
|
if (file_exists($dmg)) {
|
|
exec("trash ".$dmg."; umount -f /Volumes/Polyfill");
|
|
}
|
|
exec("hdiutil create -size 100g -fs HFS+ -type SPARSEBUNDLE -volname Polyfill -attach ".$dmg);
|
|
|
|
$base = "/Volumes/Polyfill";
|
|
$sample_files = glob($sample."/*.*");
|
|
foreach($sample_files as $key => $file) {
|
|
if (is_dir($file)) {
|
|
unset($sample_files[$key]);
|
|
}
|
|
}
|
|
|
|
for ($i = 0; $i < $total; $i++) {
|
|
|
|
$stamp = md5(microtime());
|
|
$levels = array();
|
|
$levels[] = substr($stamp,0,2);
|
|
$levels[] = substr($stamp,2,2);
|
|
$levels[] = substr($stamp,4,2);
|
|
$levels[] = substr($stamp,6,2);
|
|
$levels[] = substr($stamp,8,2);
|
|
$levels[] = substr($stamp,10,2);
|
|
|
|
if ($deep) {
|
|
|
|
$dest = $base."/".implode("/",$levels)."/".$stamp;
|
|
|
|
$check = array();
|
|
$check[] = $base."/".$levels[0];
|
|
$check[] = $base."/".$levels[0]."/".$levels[1];
|
|
$check[] = $base."/".$levels[0]."/".$levels[1]."/".$levels[2];
|
|
$check[] = $base."/".$levels[0]."/".$levels[1]."/".$levels[2]."/".$levels[3];
|
|
$check[] = $base."/".$levels[0]."/".$levels[1]."/".$levels[2]."/".$levels[3]."/".$levels[4];
|
|
$check[] = $base."/".$levels[0]."/".$levels[1]."/".$levels[2]."/".$levels[3]."/".$levels[4]."/".$levels[5];
|
|
|
|
foreach ($check as $dir) {
|
|
echo "check ".$dir."\n";
|
|
if (!file_exists($dir)) {
|
|
mkdir($dir);
|
|
}
|
|
}
|
|
|
|
} else {
|
|
|
|
$dest = $base."/".$stamp;
|
|
|
|
}
|
|
|
|
$use = $sample_files[array_rand($sample_files)];
|
|
$ext = pathinfo($use, PATHINFO_EXTENSION);
|
|
echo "cp ".$use." ".$dest.".".$ext."\n";
|
|
|
|
copy($use,$dest.".".$ext);
|
|
//copy($use,dirname($dest)."/".basename($use)); // make many dupes
|
|
|
|
}
|
|
|
|
exec("open /Volumes/Polyfill");
|
|
|
|
?>
|