szuru/scripts/process-detached-files.php
Marcin Kurczewski 5d51297c16 Closed #42
2013-10-18 00:31:22 +02:00

75 lines
1.4 KiB
PHP

<?php
require_once __DIR__ . '/../src/core.php';
function usage()
{
echo 'Usage: ' . basename(__FILE__);
echo ' -print|-purge|-move DIR' . PHP_EOL;
return true;
}
array_shift($argv);
if (empty($argv))
usage() and die;
$action = array_shift($argv);
switch ($action)
{
case '-print':
$func = function($name)
{
echo $name . PHP_EOL;
};
break;
case '-move':
if (empty($argv))
usage() and die;
$dir = array_shift($argv);
if (!file_exists($dir))
mkdir($dir, 0755, true);
if (!is_dir($dir))
die($dir . ' is not a dir' . PHP_EOL);
$func = function($name) use ($dir)
{
echo $name . PHP_EOL;
static $filesPath = null;
if ($filesPath == null)
$filesPath = configFactory()->main->filesPath;
rename($filesPath . DS . $name, $dir . DS . $name);
};
break;
case '-purge':
$func = function($name) use ($dir)
{
echo $name . PHP_EOL;
static $filesPath = null;
if ($filesPath == null)
$filesPath = configFactory()->main->filesPath;
unlink($filesPath . DS . $name);
};
break;
default:
die('Unknown action' . PHP_EOL);
}
$names = [];
foreach (R::findAll('post') as $post)
{
$names []= $post->name;
}
$names = array_flip($names);
$config = configFactory();
$filesPath = $config->main->filesPath;
foreach (glob($filesPath . DS . '*') as $name)
{
$name = basename($name);
if (!isset($names[$name]))
{
$func($name);
}
}