HomePhabricator

[Wilds] Rewrite "arc" entrypoints for toolsets

Description

[Wilds] Rewrite "arc" entrypoints for toolsets

Summary:
Ref T13098. Depends on D19675. This change is headed to the untamed-wilds branch.

This change prevents arc from running arc diff, so I'm copy/pasting it.

This change also completely breaks arc, but I'm just generally trying to do this rewrite step-by-step so we have at least a bit of context to refer to in the future.

The major change here is to turn both arc and phage into scripts which start an ArcanistRuntime. This runtime then decides which workflows (like "diff", "patch", or "remote") are available based on $argv[0]. This turns arc into more of a CLI tools platform: we can build phage on it, third parties can build my-companion-tool-thing, etc. But all the different entry points can share a lot of infrastructure like: help, alias, shell-complete, configuration, Conduit, prompting, --trace, extension infrastructure, and so on.

ArcanistRuntime is roughly a slightly more modern version of scripts/arcanist.php. That will be removed eventually, but not everything has ported yet.

Test Plan: This code basically doesn't run yet, although the next patch runs at least a little bit.

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13098

Differential Revision: https://secure.phabricator.com/D19677

Details

Provenance
epriestleyAuthored on Sep 14 2018, 6:26 PM
epriestleyPushed on Sep 21 2018, 10:56 PM
Reviewer
amckinley
Differential Revision
D19677: [Wilds] Rewrite "arc" entrypoints for toolsets
Parents
rARC9d59e9e5908e: Merge branch "master" into "experimental".
Branches
Unknown
Tags
Unknown
Tasks
T13098: Plans: Arcanist toolsets and extensions
Build Status
Buildable 20868
Build 28380: Run Core Tests