public function run()
    {
        if (!$this->io->isInteractive()) {
            return;
        }

        $cwd = getcwd();
        $info = <<<OUT

All paths are currently relative to the current working directory (`$cwd`)

Paths can have aliases to other paths. These are specified with a word surrounded by percents.
For example, if we defined `user` as `/Users/Me`, then `%user%/my-site` would resolve to `/Users/Me/my-site`

OUT;
        // Replace backticks with actual styles
        $info = preg_replace_callback('/`([^`]*)`/', function ($match) {
            return "<comment>{$match[1]}</comment>";
        }, $info);
        $this->io->writeln($info);

        do {
            $this->renderPaths();

            $name = $this->askPathToModify();
            if ($name === null) {
                break;
            }

            $this->askAndSetNewPathValue($name);
        } while (true);
    }