private void run() throws IOException {
        final Scanner inputScanner = new Scanner(System.in);
        LOGGER.debug("repo dir: {}", REPO_ROOT_PATH);

        log("Enter the name for this environment, e.g. '7.5', or 'master' (blank for un-named):");
        log("The entered name will be prefixed with 'stroom_' and 'stroom-proxy_'");
        final String envName = inputScanner.nextLine();
        final String stroomEnvName = buildDbName(envName);
        final String proxyEnvName = stroomEnvName.replace("stroom", "stroom-proxy");

        Boolean isConfirmed = null;
        do {
            log("Do you wish to continue with the environment names '{}' and '{}'? {}",
                    ConsoleColour.cyan(stroomEnvName),
                    ConsoleColour.cyan(proxyEnvName),
                    YES_NO_OPTION_STR);
            isConfirmed = userInputToBoolean(inputScanner.nextLine());
        } while (isConfirmed == null);
        if (!isConfirmed) {
            System.exit(1);
        }

        final String url = makeJdbcUrl(stroomEnvName);
        logWithColouredArgs("DB name: {}, url: '{}'",
                stroomEnvName, url);

        final Set<String> dbNames = DbTestUtil.getWithRootConnection(ThrowingFunction.unchecked(rootConn -> {
            try (final Statement statement = rootConn.createStatement()) {
                final ResultSet resultSet = statement.executeQuery("SHOW DATABASES;");
                final Set<String> set = new HashSet<>();
                while (resultSet.next()) {
                    set.add(resultSet.getString(1));
                }
                return set;
            }
        }));

        final String username = ConnectionConfig.DEFAULT_JDBC_DRIVER_USERNAME;
        final String password = ConnectionConfig.DEFAULT_JDBC_DRIVER_PASSWORD;
        final boolean shouldCreateDb = shouldCreateDb(dbNames, stroomEnvName, inputScanner, username);
        if (shouldCreateDb) {
            logWithColouredArgs("Creating database '{}' and user '{}'", stroomEnvName, username);
            // Create the db, user and grants
            DbTestUtil.doWithRootConnection(ThrowingConsumer.unchecked(rootConn ->
                    DbTestUtil.createStroomDatabaseAndUser(rootConn, stroomEnvName, username, password)));
        }

        final String stroomHomeEnvBase = STROOM_HOME_BASE + stroomEnvName;
        final String stroomTempEnvBase = STROOM_TMP_BASE + stroomEnvName;
        final String proxyHomeEnvBase = PROXY_HOME_BASE + proxyEnvName;
        final String proxyTempEnvBase = PROXY_TMP_BASE + proxyEnvName;

        final Boolean shouldClearDirs = shouldClearDirs(
                inputScanner,
                stroomHomeEnvBase,
                stroomTempEnvBase,
                proxyHomeEnvBase,
                proxyTempEnvBase);

        ensureAndClearDir(stroomHomeEnvBase, shouldClearDirs);
        ensureAndClearDir(stroomTempEnvBase, shouldClearDirs);
        ensureAndClearDir(proxyHomeEnvBase, shouldClearDirs);
        ensureAndClearDir(proxyTempEnvBase, shouldClearDirs);

        final AtomicInteger count = new AtomicInteger();
        try (Stream<Path> fileStream = Files.list(REPO_ROOT_PATH)) {
            fileStream.filter(file ->
                            CONFIG_FILE_NAMES.containsKey(file.getFileName().toString()))
                    .forEach(configFile -> {
                        final FileType fileType = getFileType(configFile);
                        final String homeDirBase = fileType == FileType.STROOM
                                ? stroomHomeEnvBase
                                : proxyHomeEnvBase;
                        final String tempDirBase = fileType == FileType.STROOM
                                ? stroomTempEnvBase
                                : proxyTempEnvBase;
                        modifyConfigFile(
                                configFile, url, username, password, homeDirBase, tempDirBase);
                        count.incrementAndGet();
                    });
        }
        if (count.get() == 0) {
            LOGGER.error("No YAML config files found to modify, have you run ./config.yml.sh ?");
        } else {
            log("Modified {} YAML files", count);
        }
        log("Done");
    }
PSVM for making a dedicated stroom DB and directory structure to allow running multiple
stroom versions, albeit not concurrently.
You can't run multiple strooms concurrently time due to port clashes and the fact that
there is only one nginx instance.
<p>
It will prompt you for a version string, e.g. '7.5' which will be used in the DB name
and in the stroom home/temp file paths.
</p>
<p>
A suggested approach is to have:
<ul>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: 'master',
    db name: 'stroom_master',
    home: '~/.stroom/stroom_master'</pre></li>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: '7.5',
    db name: 'stroom_v7_5',
    home: '~/.stroom/stroom_v7_5'</pre></li>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: '7.6',
    db name: 'stroom_v7_6',
    home: '~/.stroom/stroom_v7_6'</pre></li>
</ul>

</P>
stroom-test-common/src/main/java/stroom/test/common/util/db/SetupDevEnv.java