1
0
Fork 0
mirror of https://github.com/Oreolek/kohana-migrations.git synced 2024-06-16 15:01:08 +03:00

Some better group validation and usage of Minion_CLI to clean up output code. (refs #22)

This commit is contained in:
Lorenzo Pisani 2011-06-25 23:11:09 -07:00
parent 5d3bf345ba
commit 8b38ab7025

View file

@ -54,10 +54,14 @@ class Minion_Task_Db_Generate extends Minion_Task
$config = array_merge($defaults, $config);
if (empty($config['group']))
// Trim slashes in group
$config['group'] = trim($config['group'], '/');
if ( ! $this->_valid_group($config['group']))
{
return 'Please provide --group'.PHP_EOL.
'See help for more info'.PHP_EOL;
Minion_CLI::write('Please provide a valid --group');
Minion_CLI::write('See help for more info');
return;
}
$group = $config['group'].'/';
@ -82,7 +86,8 @@ class Minion_Task_Db_Generate extends Minion_Task
file_put_contents($file, $data);
return 'Migration generated in '.$file.PHP_EOL;
Minion_CLI::write('Migration generated: '.$file);
return;
}
/**
@ -129,4 +134,21 @@ class Minion_Task_Db_Generate extends Minion_Task
return $filename.EXT;
}
protected function _valid_group($group)
{
// Group cannot be empty
if ( ! Valid::not_empty($group))
return FALSE;
// Can only consist of alpha-numeric values, dashes, underscores, and slashes
if (preg_match('/[^a-zA-Z0-9\/_-]/', $group))
return FALSE;
// Must also contain at least one alpha-numeric value
if ( ! preg_match('/[a-zA-Z0-9]/', $group))
return FALSE; // --group="/" breaks things but "a/b" should be allowed
return TRUE;
}
}