diff --git a/.eslintignore b/.eslintignore index 3d6e61df24..8f826ff6b7 100644 --- a/.eslintignore +++ b/.eslintignore @@ -18,10 +18,10 @@ tools/catalog-remote.js tools/catalog.js tools/cleanup.js tools/colon-converter.js -tools/commands-cordova.js -tools/commands-packages-query.js -tools/commands-packages.js -tools/commands.js +tools/cli/commands-cordova.js +tools/cli/commands-packages-query.js +tools/cli/commands-packages.js +tools/cli/commands.js tools/config.js tools/console.js tools/deploy.js @@ -33,7 +33,7 @@ tools/http-helpers.js tools/inspector.js tools/isopackets.js tools/main-transpile-wrapper.js -tools/main.js +tools/cli/main.js tools/mongo-exit-codes.js tools/package-client.js tools/package-map.js diff --git a/tools/commands-cordova.js b/tools/cli/commands-cordova.js similarity index 99% rename from tools/commands-cordova.js rename to tools/cli/commands-cordova.js index 95115579d8..581a41dde7 100644 --- a/tools/commands-cordova.js +++ b/tools/cli/commands-cordova.js @@ -3,18 +3,18 @@ var _ = require('underscore'); var util = require('util'); var path = require('path'); var chalk = require('chalk'); -var files = require('./files.js'); -var buildmessage = require('./buildmessage.js'); -var projectContextModule = require('./project-context.js'); +var files = require('../files.js'); +var buildmessage = require('../buildmessage.js'); +var projectContextModule = require('../project-context.js'); var Future = require('fibers/future'); -var utils = require('./utils.js'); -var archinfo = require('./archinfo.js'); -var tropohouse = require('./tropohouse.js'); -var httpHelpers = require('./http-helpers.js'); -var Console = require('./console.js').Console; -var processes = require('./processes.js'); -var catalog = require('./catalog.js'); -var release = require('./release.js'); +var utils = require('../utils.js'); +var archinfo = require('../archinfo.js'); +var tropohouse = require('../tropohouse.js'); +var httpHelpers = require('../http-helpers.js'); +var Console = require('../console.js').Console; +var processes = require('../processes.js'); +var catalog = require('../catalog.js'); +var release = require('../release.js'); // XXX hard-coded the use of default tropohouse var tropo = tropohouse.default; @@ -212,7 +212,7 @@ var execFileAsyncOrThrow = function (file, args, opts, cb) { process.env, opts.env || {}); - var execFileAsync = require('./utils.js').execFileAsync; + var execFileAsync = require('../utils.js').execFileAsync; var p = execFileAsync(file, args, opts); p.on('close', function (code) { @@ -228,7 +228,7 @@ var execFileAsyncOrThrow = function (file, args, opts, cb) { }; var execFileSyncOrThrow = function (file, args, opts) { - var execFileSync = require('./utils.js').execFileSync; + var execFileSync = require('../utils.js').execFileSync; verboseLog('Running synchronously: ', file, args); @@ -277,7 +277,7 @@ var execFileSyncOrThrow = function (file, args, opts) { }; var getLoadedPackages = function () { - var isopackets = require("./isopackets.js"); + var isopackets = require("../isopackets.js"); return isopackets.load('cordova-support'); }; @@ -342,7 +342,7 @@ var generateCordovaBoilerplate = function (projectContext, clientDir, options) { // options // - debug var getBundle = function (projectContext, bundlePath, options) { - var bundler = require('./isobuild/bundler.js'); + var bundler = require('../isobuild/bundler.js'); var bundleResult = bundler.bundle({ projectContext: projectContext, @@ -754,7 +754,7 @@ var fetchCordovaPluginFromShaUrl = var pluginPath = files.pathJoin(localPluginsDir, pluginName); var pluginTarballPath = pluginPath + '.tgz'; - var execFileSync = require('./utils.js').execFileSync; + var execFileSync = require('../utils.js').execFileSync; var whichCurl = execFileSync('which', ['curl']); var downloadProcess = null; @@ -2080,7 +2080,7 @@ _.extend(IOS.prototype, { }, killSimulator: function () { - var execFileSync = require('./utils.js').execFileSync; + var execFileSync = require('../utils.js').execFileSync; execFileSync('killall', ['iOS Simulator']); execFileSync('killall', ['iPhone Simulator']); } diff --git a/tools/commands-packages-query.js b/tools/cli/commands-packages-query.js similarity index 99% rename from tools/commands-packages-query.js rename to tools/cli/commands-packages-query.js index 2a5a8dfd02..0759468358 100644 --- a/tools/commands-packages-query.js +++ b/tools/cli/commands-packages-query.js @@ -2,17 +2,17 @@ // contained in the Meteor Package Server. They also deal with presenting this // to the user in various human or machine-readable ways. var _ = require('underscore'); -var archinfo = require('./archinfo.js'); -var buildmessage = require('./buildmessage.js'); -var catalog = require('./catalog.js'); -var Console = require("./console.js").Console; -var files = require('./files.js'); -var isopackets = require('./isopackets.js'); +var archinfo = require('../archinfo.js'); +var buildmessage = require('../buildmessage.js'); +var catalog = require('../catalog.js'); +var Console = require("../console.js").Console; +var files = require('../files.js'); +var isopackets = require('../isopackets.js'); var main = require('./main.js'); -var packageVersionParser = require('./package-version-parser.js'); -var projectContextModule = require('./project-context.js'); -var utils = require('./utils.js'); -var compiler = require('./isobuild/compiler.js'); +var packageVersionParser = require('../package-version-parser.js'); +var projectContextModule = require('../project-context.js'); +var utils = require('../utils.js'); +var compiler = require('../isobuild/compiler.js'); // We want these queries to be relatively fast, so we will only refresh the // catalog if it is > 15 minutes old diff --git a/tools/commands-packages.js b/tools/cli/commands-packages.js similarity index 98% rename from tools/commands-packages.js rename to tools/cli/commands-packages.js index ea7901e783..6c24c320f0 100644 --- a/tools/commands-packages.js +++ b/tools/cli/commands-packages.js @@ -1,33 +1,33 @@ var main = require('./main.js'); var _ = require('underscore'); -var files = require('./files.js'); -var deploy = require('./deploy.js'); -var buildmessage = require('./buildmessage.js'); -var warehouse = require('./warehouse.js'); -var auth = require('./auth.js'); -var config = require('./config.js'); -var release = require('./release.js'); +var files = require('../files.js'); +var deploy = require('../deploy.js'); +var buildmessage = require('../buildmessage.js'); +var warehouse = require('../warehouse.js'); +var auth = require('../auth.js'); +var config = require('../config.js'); +var release = require('../release.js'); var Future = require('fibers/future'); -var runLog = require('./run-log.js'); -var packageClient = require('./package-client.js'); -var utils = require('./utils.js'); -var httpHelpers = require('./http-helpers.js'); -var archinfo = require('./archinfo.js'); -var tropohouse = require('./tropohouse.js'); -var PackageSource = require('./isobuild/package-source.js'); -var bundler = require('./isobuild/bundler.js'); -var compiler = require('./isobuild/compiler.js'); -var catalog = require('./catalog.js'); -var catalogRemote = require('./catalog-remote.js'); -var stats = require('./stats.js'); -var isopack = require('./isobuild/isopack.js'); -var updater = require('./updater.js'); +var runLog = require('../run-log.js'); +var packageClient = require('../package-client.js'); +var utils = require('../utils.js'); +var httpHelpers = require('../http-helpers.js'); +var archinfo = require('../archinfo.js'); +var tropohouse = require('../tropohouse.js'); +var PackageSource = require('../isobuild/package-source.js'); +var bundler = require('../isobuild/bundler.js'); +var compiler = require('../isobuild/compiler.js'); +var catalog = require('../catalog.js'); +var catalogRemote = require('../catalog-remote.js'); +var stats = require('../stats.js'); +var isopack = require('../isobuild/isopack.js'); +var updater = require('../updater.js'); var cordova = require('./commands-cordova.js'); -var Console = require('./console.js').Console; -var projectContextModule = require('./project-context.js'); -var packageMapModule = require('./package-map.js'); -var packageVersionParser = require('./package-version-parser.js'); -var colonConverter = require("./colon-converter.js"); +var Console = require('../console.js').Console; +var projectContextModule = require('../project-context.js'); +var packageMapModule = require('../package-map.js'); +var packageVersionParser = require('../package-version-parser.js'); +var colonConverter = require("../colon-converter.js"); // For each release (or package), we store a meta-record with its name, // maintainers, etc. This function takes in a name, figures out if @@ -1477,7 +1477,7 @@ var maybeUpdateRelease = function (options) { // backward-compatibility code which knows how to deal with an older release, // but if we actually do that, we can change this code to add the extra // springboard at that time. - var upgraders = require('./upgraders.js'); + var upgraders = require('../upgraders.js'); var upgradersToRun = upgraders.upgradersToRun(projectContext); // Download and build packages and write the new versions to .meteor/versions. @@ -1715,7 +1715,7 @@ main.registerCommand({ var upgrader = options.args[0]; - var upgraders = require("./upgraders.js"); + var upgraders = require("../upgraders.js"); console.log("%s: running upgrader %s.", files.pathBasename(options.appDir), upgrader); upgraders.runUpgrader(projectContext, upgrader); diff --git a/tools/commands.js b/tools/cli/commands.js similarity index 97% rename from tools/commands.js rename to tools/cli/commands.js index 617332ad91..51ce610628 100644 --- a/tools/commands.js +++ b/tools/cli/commands.js @@ -1,29 +1,29 @@ var main = require('./main.js'); var _ = require('underscore'); -var files = require('./files.js'); -var deploy = require('./deploy.js'); -var buildmessage = require('./buildmessage.js'); -var warehouse = require('./warehouse.js'); -var auth = require('./auth.js'); -var authClient = require('./auth-client.js'); -var config = require('./config.js'); -var release = require('./release.js'); +var files = require('../files.js'); +var deploy = require('../deploy.js'); +var buildmessage = require('../buildmessage.js'); +var warehouse = require('../warehouse.js'); +var auth = require('../auth.js'); +var authClient = require('../auth-client.js'); +var config = require('../config.js'); +var release = require('../release.js'); var Future = require('fibers/future'); -var runLog = require('./run-log.js'); -var packageClient = require('./package-client.js'); -var utils = require('./utils.js'); -var httpHelpers = require('./http-helpers.js'); -var archinfo = require('./archinfo.js'); -var tropohouse = require('./tropohouse.js'); -var catalog = require('./catalog.js'); -var stats = require('./stats.js'); -var isopack = require('./isobuild/isopack.js'); +var runLog = require('../run-log.js'); +var packageClient = require('../package-client.js'); +var utils = require('../utils.js'); +var httpHelpers = require('../http-helpers.js'); +var archinfo = require('../archinfo.js'); +var tropohouse = require('../tropohouse.js'); +var catalog = require('../catalog.js'); +var stats = require('../stats.js'); +var isopack = require('../isobuild/isopack.js'); var cordova = require('./commands-cordova.js'); -var execFileSync = require('./utils.js').execFileSync; -var Console = require('./console.js').Console; -var projectContextModule = require('./project-context.js'); -var colonConverter = require('./colon-converter.js'); -var PackageSource = require('./isobuild/package-source.js'); +var execFileSync = require('../utils.js').execFileSync; +var Console = require('../console.js').Console; +var projectContextModule = require('../project-context.js'); +var colonConverter = require('../colon-converter.js'); +var PackageSource = require('../isobuild/package-source.js'); // The architecture used by MDG's hosted servers; it's the architecture used by // 'meteor deploy'. @@ -119,7 +119,7 @@ main.registerCommand({ pretty: false, catalogRefresh: new catalog.Refresh.Never() }, function (options) { - var archinfo = require('./archinfo.js'); + var archinfo = require('../archinfo.js'); Console.rawInfo(archinfo.host() + "\n"); }); @@ -383,7 +383,7 @@ function doRunCommand (options) { options.once = true; var serverUrl = "http://" + (parsedUrl.host || "localhost") + ":" + parsedUrl.port; - var velocity = require('./run-velocity.js'); + var velocity = require('../run-velocity.js'); velocity.runVelocity(serverUrl); } @@ -392,7 +392,7 @@ function doRunCommand (options) { mobileServer = mobileServer + ":" + parsedMobileServer.port; } - var runAll = require('./run-all.js'); + var runAll = require('../run-all.js'); return runAll.run({ projectContext: projectContext, proxyPort: parsedUrl.port, @@ -450,7 +450,7 @@ main.registerCommand({ // Convert to OS path here because shell/server.js doesn't know how to // convert paths, since it exists in the app and in the tool. - require('./shell-client.js').connect( + require('../shell-client.js').connect( files.convertToOSPath(projectContext.getMeteorShellDirectory()) ); @@ -553,7 +553,7 @@ main.registerCommand({ }; try { - files.cp_r(files.pathJoin(__dirnameConverted, 'skel-pack'), packageDir, { + files.cp_r(files.pathJoin(__dirnameConverted, '..', 'skel-pack'), packageDir, { transformFilename: function (f) { return transform(f); }, @@ -600,7 +600,7 @@ main.registerCommand({ } } - var exampleDir = files.pathJoin(__dirnameConverted, '..', 'examples'); + var exampleDir = files.pathJoin(__dirnameConverted, '..', '..', 'examples'); var examples = _.reject(files.readdir(exampleDir), function (e) { return (e === 'unfinished' || e === 'other' || e[0] === '.'); }); @@ -661,7 +661,7 @@ main.registerCommand({ }); } } else { - files.cp_r(files.pathJoin(__dirnameConverted, 'skel'), appPath, { + files.cp_r(files.pathJoin(__dirnameConverted, '..', 'skel'), appPath, { transformFilename: function (f) { return transform(f); }, @@ -698,7 +698,7 @@ main.registerCommand({ // Any upgrader that is in this version of Meteor doesn't need to be run on // this project. - var upgraders = require('./upgraders.js'); + var upgraders = require('../upgraders.js'); projectContext.finishedUpgraders.appendUpgraders(upgraders.allUpgraders()); projectContext.prepareProjectForBuild(); @@ -894,7 +894,7 @@ var buildCommand = function (options) { projectContext: projectContext }); - var bundler = require('./isobuild/bundler.js'); + var bundler = require('../isobuild/bundler.js'); var bundleResult = bundler.bundle({ projectContext: projectContext, outputPath: bundlePath, @@ -1030,7 +1030,7 @@ main.registerCommand({ }); const bundlePath = projectContext.getProjectLocalDirectory('build'); - const bundler = require('./isobuild/bundler.js'); + const bundler = require('../isobuild/bundler.js'); const bundle = bundler.bundle({ projectContext: projectContext, outputPath: null, @@ -1077,7 +1077,7 @@ main.registerCommand({ if (options.args.length === 0) { // localhost mode var findMongoPort = - require('./run-mongo.js').findMongoPort; + require('../run-mongo.js').findMongoPort; var mongoPort = findMongoPort(options.appDir); // XXX detect the case where Meteor is running, but MONGO_URL was @@ -1118,7 +1118,7 @@ main.registerCommand({ if (usedMeteorAccount) auth.maybePrintRegistrationLink(); process.stdin.pause(); - var runMongo = require('./run-mongo.js'); + var runMongo = require('../run-mongo.js'); runMongo.runMongoShell(mongoUrl); throw new main.WaitForExit; } @@ -1150,7 +1150,7 @@ main.registerCommand({ // XXX detect the case where Meteor is running the app, but // MONGO_URL was set, so we don't see a Mongo process - var findMongoPort = require('./run-mongo.js').findMongoPort; + var findMongoPort = require('../run-mongo.js').findMongoPort; var isRunning = !! findMongoPort(options.appDir); if (isRunning) { Console.error("reset: Meteor is running."); @@ -1582,7 +1582,7 @@ main.registerCommand({ if (options.velocity) { var serverUrl = "http://" + (parsedUrl.host || "localhost") + ":" + parsedUrl.port; - var velocity = require('./run-velocity.js'); + var velocity = require('../run-velocity.js'); velocity.runVelocity(serverUrl); } @@ -1667,7 +1667,7 @@ var runTestAppForPackages = function (projectContext, options) { recordPackageUsage: false }); } else { - var runAll = require('./run-all.js'); + var runAll = require('../run-all.js'); return runAll.run({ projectContext: projectContext, proxyPort: options.port, @@ -1705,7 +1705,7 @@ main.registerCommand({ catalogRefresh: new catalog.Refresh.Never(), 'allow-incompatible-update': { type: Boolean } }, function (options) { - var projectContextModule = require('./project-context.js'); + var projectContextModule = require('../project-context.js'); var projectContext = new projectContextModule.ProjectContext({ projectDir: options.appDir, forceRebuildPackages: options.args.length ? options.args : true, @@ -1930,13 +1930,13 @@ main.registerCommand({ return 1; } - var selftest = require('./selftest.js'); + var selftest = require('../selftest.js'); // Auto-detect whether to skip 'net' tests, unless --force-online is passed. var offline = false; if (!options['force-online']) { try { - require('./http-helpers.js').getUrl("http://www.google.com/"); + require('../http-helpers.js').getUrl("http://www.google.com/"); } catch (e) { if (e instanceof files.OfflineError) offline = true; diff --git a/tools/help.txt b/tools/cli/help.txt similarity index 100% rename from tools/help.txt rename to tools/cli/help.txt diff --git a/tools/main.js b/tools/cli/main.js similarity index 98% rename from tools/main.js rename to tools/cli/main.js index 457a645b87..a2b42c625a 100644 --- a/tools/main.js +++ b/tools/cli/main.js @@ -1,20 +1,20 @@ var showRequireProfile = ('METEOR_PROFILE_REQUIRE' in process.env); if (showRequireProfile) - require('./profile-require.js').start(); + require('../profile-require.js').start(); var assert = require("assert"); var _ = require('underscore'); var Fiber = require('fibers'); var Future = require('fibers/future'); -var Console = require('./console.js').Console; -var files = require('./files.js'); -var warehouse = require('./warehouse.js'); -var tropohouse = require('./tropohouse.js'); -var release = require('./release.js'); -var projectContextModule = require('./project-context.js'); -var catalog = require('./catalog.js'); -var buildmessage = require('./buildmessage.js'); -var httpHelpers = require('./http-helpers.js'); +var Console = require('../console.js').Console; +var files = require('../files.js'); +var warehouse = require('../warehouse.js'); +var tropohouse = require('../tropohouse.js'); +var release = require('../release.js'); +var projectContextModule = require('../project-context.js'); +var catalog = require('../catalog.js'); +var buildmessage = require('../buildmessage.js'); +var httpHelpers = require('../http-helpers.js'); var main = exports; @@ -23,7 +23,7 @@ var main = exports; // Node 0.12, so when we upgrade let's remember to remove this clause, and the // file it requires. See https://github.com/joyent/node/issues/3584 if (process.platform === "win32") { - require('./flush-buffers-on-exit-in-windows.js'); + require('../flush-buffers-on-exit-in-windows.js'); } // node (v8) defaults to only recording 10 lines of stack trace. This @@ -400,12 +400,12 @@ var springboard = function (rel, options) { if (process.env.METEOR_DEBUG_SPRINGBOARD) console.log("WILL SPRINGBOARD TO", rel.getToolsPackageAtVersion()); - var archinfo = require('./archinfo.js'); - var isopack = require('./isobuild/isopack.js'); + var archinfo = require('../archinfo.js'); + var isopack = require('../isobuild/isopack.js'); var toolsPkg = rel.getToolsPackage(); var toolsVersion = rel.getToolsVersion(); - var packageMapModule = require('./package-map.js'); + var packageMapModule = require('../package-map.js'); var versionMap = {}; versionMap[toolsPkg] = toolsVersion; var packageMap = new packageMapModule.PackageMap(versionMap); @@ -542,7 +542,7 @@ Fiber(function () { // Set up git hooks if (files.inCheckout()) { - var installGitHooks = require('./install-git-hooks.js'); + var installGitHooks = require('../install-git-hooks.js'); installGitHooks(); } @@ -745,7 +745,7 @@ Fiber(function () { appDir = files.pathResolve(appDir); } - require('./isopackets.js').ensureIsopacketsLoadable(); + require('../isopackets.js').ensureIsopacketsLoadable(); // Initialize the server catalog. Among other things, this is where we get // release information (used by springboarding). We do not at this point talk @@ -974,7 +974,7 @@ Fiber(function () { // Let's do some processing here. If the user/release file specified a // track, we need to display that correctly, and if they didn't, we should // make it clear that we are talking about the default track. - var utils = require('./utils.js'); + var utils = require('../utils.js'); var trackAndVersion = utils.splitReleaseName(releaseName); var displayRelease = utils.displayRelease( trackAndVersion[0], trackAndVersion[1]); @@ -1359,7 +1359,7 @@ Fiber(function () { // Now that we're ready to start executing the command, if we are in // startup time profiling mode, print the profile. if (showRequireProfile) - require('./profile-require.js').printReport(); + require('../profile-require.js').printReport(); Console.setPretty(command.evaluateOption('pretty', options)); Console.enableProgressDisplay(true); diff --git a/tools/main-transpile-wrapper.js b/tools/main-transpile-wrapper.js index 8e299e07ed..068f5d898f 100644 --- a/tools/main-transpile-wrapper.js +++ b/tools/main-transpile-wrapper.js @@ -2,4 +2,4 @@ require('./install-babel.js'); // Run the Meteor command line tool -require('./main.js'); +require('./cli/main.js'); diff --git a/tools/run-app.js b/tools/run-app.js index dc0bf23556..038b252b9d 100644 --- a/tools/run-app.js +++ b/tools/run-app.js @@ -9,7 +9,7 @@ var release = require('./release.js'); var buildmessage = require('./buildmessage.js'); var runLog = require('./run-log.js'); var stats = require('./stats.js'); -var cordova = require('./commands-cordova.js'); +var cordova = require('./cli/commands-cordova.js'); var Console = require('./console.js').Console; var catalog = require('./catalog.js'); var Profile = require('./profile.js').Profile;