mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-24 15:52:40 +01:00
Remove reentrant code
Summary: Ref T7604. Remove the `reenter_if_this_is_arcanist_or_libphutil` function. Some discussion in D12945. Test Plan: Ran `./bin/arc --trace help` and saw things happen as expected. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T7604 Differential Revision: https://secure.phabricator.com/D12999
This commit is contained in:
parent
59ef783f4a
commit
92dbc36250
1 changed files with 0 additions and 77 deletions
|
@ -114,11 +114,6 @@ try {
|
||||||
}
|
}
|
||||||
$configuration_manager->setWorkingCopyIdentity($working_copy);
|
$configuration_manager->setWorkingCopyIdentity($working_copy);
|
||||||
|
|
||||||
reenter_if_this_is_arcanist_or_libphutil(
|
|
||||||
$console,
|
|
||||||
$working_copy,
|
|
||||||
$original_argv);
|
|
||||||
|
|
||||||
// Load additional libraries, which can provide new classes like configuration
|
// Load additional libraries, which can provide new classes like configuration
|
||||||
// overrides, linters and lint engines, unit test engines, etc.
|
// overrides, linters and lint engines, unit test engines, etc.
|
||||||
|
|
||||||
|
@ -646,75 +641,3 @@ function arcanist_load_libraries(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NOTE: SPOOKY BLACK MAGIC
|
|
||||||
*
|
|
||||||
* When arc is run in a copy of arcanist other than itself, or a copy of
|
|
||||||
* libphutil other than the one we loaded, reenter the script and force it
|
|
||||||
* to use the current working directory instead of the default.
|
|
||||||
*
|
|
||||||
* In the case of execution inside arcanist/, we force execution of the local
|
|
||||||
* arc binary.
|
|
||||||
*
|
|
||||||
* In the case of execution inside libphutil/, we force the local copy to load
|
|
||||||
* instead of the one selected by default rules.
|
|
||||||
*
|
|
||||||
* @param PhutilConsole Console.
|
|
||||||
* @param ArcanistWorkingCopyIdentity The current working copy.
|
|
||||||
* @param array Original arc arguments.
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function reenter_if_this_is_arcanist_or_libphutil(
|
|
||||||
PhutilConsole $console,
|
|
||||||
ArcanistWorkingCopyIdentity $working_copy,
|
|
||||||
array $original_argv) {
|
|
||||||
|
|
||||||
$project_id = $working_copy->getProjectID();
|
|
||||||
if ($project_id != 'arcanist' && $project_id != 'libphutil') {
|
|
||||||
// We're not in a copy of arcanist or libphutil.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$library_names = array(
|
|
||||||
'arcanist' => 'arcanist',
|
|
||||||
'libphutil' => 'phutil',
|
|
||||||
);
|
|
||||||
|
|
||||||
$library_root = phutil_get_library_root($library_names[$project_id]);
|
|
||||||
$project_root = $working_copy->getProjectRoot();
|
|
||||||
if (Filesystem::isDescendant($library_root, $project_root)) {
|
|
||||||
// We're in a copy of arcanist or libphutil, but already loaded the correct
|
|
||||||
// copy. Continue execution normally.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($project_id == 'libphutil') {
|
|
||||||
$console->writeLog(
|
|
||||||
"%s\n",
|
|
||||||
pht('This is libphutil! Forcing this copy to load...'));
|
|
||||||
$original_argv[0] = dirname(phutil_get_library_root('arcanist')).'/bin/arc';
|
|
||||||
$libphutil_path = $project_root;
|
|
||||||
} else {
|
|
||||||
$console->writeLog(
|
|
||||||
"%s\n",
|
|
||||||
pht('This is arcanist! Forcing this copy to run...'));
|
|
||||||
$original_argv[0] = $project_root.'/bin/arc';
|
|
||||||
$libphutil_path = dirname(phutil_get_library_root('phutil'));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (phutil_is_windows()) {
|
|
||||||
$err = phutil_passthru(
|
|
||||||
'set ARC_PHUTIL_PATH=%s & %Ls',
|
|
||||||
$libphutil_path,
|
|
||||||
$original_argv);
|
|
||||||
} else {
|
|
||||||
$err = phutil_passthru(
|
|
||||||
'ARC_PHUTIL_PATH=%s %Ls',
|
|
||||||
$libphutil_path,
|
|
||||||
$original_argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit($err);
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue