mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-20 04:20:55 +01:00
Increase severity of bin/remove destroy warning
Summary: Make sure we're 100% clear that this is really, truly not recommended. Also improve the text itself, and show the objects which are being destroyed more clearly. Test Plan: Removed objects with `bin/remove destroy`. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D12952
This commit is contained in:
parent
4787069e96
commit
985eb26c7e
2 changed files with 78 additions and 9 deletions
|
@ -54,23 +54,81 @@ final class PhabricatorSystemRemoveDestroyWorkflow
|
|||
}
|
||||
}
|
||||
|
||||
$banner = <<<EOBANNER
|
||||
uuuuuuu
|
||||
uu###########uu
|
||||
uu#################uu
|
||||
u#####################u
|
||||
u#######################u
|
||||
u#########################u
|
||||
u#########################u
|
||||
u######" "###" "######u
|
||||
"####" u#u ####"
|
||||
###u u#u u###
|
||||
###u u###u u###
|
||||
"####uu### ###uu####"
|
||||
"#######" "#######"
|
||||
u#######u#######u
|
||||
u#"#"#"#"#"#"#u
|
||||
uuu ##u# # # # #u## uuu
|
||||
u#### #####u#u#u### u####
|
||||
#####uu "#########" uu######
|
||||
u###########uu """"" uuuu##########
|
||||
####"""##########uuu uu#########"""###"
|
||||
""" ""###########uu ""#"""
|
||||
uuuu ""##########uuu
|
||||
u###uuu#########uu ""###########uuu###
|
||||
##########"""" ""###########"
|
||||
"#####" ""####""
|
||||
###" ####"
|
||||
|
||||
EOBANNER;
|
||||
|
||||
|
||||
$console->writeOut("\n\n<fg:red>%s</fg>\n\n", $banner);
|
||||
|
||||
$console->writeOut(
|
||||
"<bg:red>**%s**</bg>\n\n",
|
||||
pht(' IMPORTANT: OBJECTS WILL BE PERMANENTLY DESTROYED! '));
|
||||
"<bg:red>** %s **</bg> %s\n\n%s\n\n".
|
||||
"<bg:red>** %s **</bg> %s\n\n%s\n\n",
|
||||
pht('IMPORTANT'),
|
||||
pht('DATA WILL BE PERMANENTLY DESTROYED'),
|
||||
phutil_console_wrap(
|
||||
pht(
|
||||
'Objects will be permanently destroyed. There is no way to '.
|
||||
'undo this operation or ever retrieve this data unless you '.
|
||||
'maintain external backups.')),
|
||||
pht('IMPORTANT'),
|
||||
pht('DELETING OBJECTS OFTEN BREAKS THINGS'),
|
||||
phutil_console_wrap(
|
||||
pht(
|
||||
'Destroying objects may cause related objects to stop working, '.
|
||||
'and may leave scattered references to objects which no longer '.
|
||||
'exist. In most cases, it is much better to disable or archive '.
|
||||
'objects instead of destroying them. This risk is greatest when '.
|
||||
'deleting complex or highly connected objects like repositories, '.
|
||||
'projects and users.'.
|
||||
"\n\n".
|
||||
'These tattered edges are an expected consquence of destroying '.
|
||||
'objects, and the Phabricator upstream will not help you fix '.
|
||||
'them. We strongly recomend disabling or archiving objects '.
|
||||
'instead.')));
|
||||
|
||||
$phids = mpull($named_objects, 'getPHID');
|
||||
$handles = PhabricatorUser::getOmnipotentUser()->loadHandles($phids);
|
||||
|
||||
$console->writeOut(
|
||||
pht(
|
||||
"There is no way to undo this operation or ever retrieve this data.".
|
||||
"\n\n".
|
||||
"These %s object(s) will be **completely destroyed forever**:".
|
||||
"\n\n",
|
||||
new PhutilNumber(count($named_objects))));
|
||||
'These %s object(s) will be destroyed forever:',
|
||||
new PhutilNumber(count($named_objects)))."\n\n");
|
||||
|
||||
foreach ($named_objects as $object_name => $object) {
|
||||
$phid = $object->getPHID();
|
||||
|
||||
$console->writeOut(
|
||||
" - %s (%s)\n",
|
||||
" - %s (%s) %s\n",
|
||||
$object_name,
|
||||
get_class($object));
|
||||
get_class($object),
|
||||
$handles[$phid]->getFullName());
|
||||
}
|
||||
|
||||
$force = $args->getArg('force');
|
||||
|
|
|
@ -1067,6 +1067,17 @@ final class PhabricatorUSEnglishTranslation
|
|||
),
|
||||
),
|
||||
|
||||
'These %s object(s) will be destroyed forever:' => array(
|
||||
'This object will be destroyed forever:',
|
||||
'These objects will be destroyed forever:',
|
||||
),
|
||||
|
||||
'Are you absolutely certain you want to destroy these %s '.
|
||||
'object(s)?' => array(
|
||||
'Are you absolutely certain you want to destroy this object?',
|
||||
'Are you absolutely certain you want to destroy these objects?',
|
||||
),
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue