From 6c41feeed47954718d09002fe56bc5780593f2a8 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 3 Nov 2016 11:45:39 +0000 Subject: [PATCH] remove self-update --- src/cli/commands/index.js | 1 - src/cli/commands/self-update.js | 83 --------------------------------- 2 files changed, 84 deletions(-) delete mode 100644 src/cli/commands/self-update.js diff --git a/src/cli/commands/index.js b/src/cli/commands/index.js index f8f4fbb747..3c1524fe45 100644 --- a/src/cli/commands/index.js +++ b/src/cli/commands/index.js @@ -23,7 +23,6 @@ import * as pack from './pack.js'; export {pack}; import * as publish from './publish.js'; export {publish}; import * as remove from './remove.js'; export {remove}; import * as run from './run.js'; export {run}; -import * as selfUpdate from './self-update.js'; export {selfUpdate}; import * as tag from './tag.js'; export {tag}; import * as team from './team.js'; export {team}; import * as unlink from './unlink.js'; export {unlink}; diff --git a/src/cli/commands/self-update.js b/src/cli/commands/self-update.js deleted file mode 100644 index 49df912a7a..0000000000 --- a/src/cli/commands/self-update.js +++ /dev/null @@ -1,83 +0,0 @@ -/* @flow */ - -import roadrunner from 'roadrunner'; -import semver from 'semver'; -import path from 'path'; -import type Config from '../../config.js'; -import { - CACHE_FILENAME, - SELF_UPDATE_DOWNLOAD_FOLDER, - SELF_UPDATE_TARBALL_URL, - SELF_UPDATE_VERSION_URL, -} from '../../constants.js'; -import TarballFetcher from '../../fetchers/tarball-fetcher.js'; -import type {Reporter} from '../../reporters/index.js'; -import {exists, realpath, symlink, unlink} from '../../util/fs.js'; - -export const noArguments = true; -export const requireLockfile = false; - -export async function run( - config: Config, - reporter: Reporter, - flags: Object, - args: Array, -): Promise { - const currentVersion = flags.version(); - const latestVersion = await config.requestManager.request({ - url: SELF_UPDATE_VERSION_URL, - headers: { - 'Accept': 'text/plain', - }, - }); - - // Check if we already use the latest or a newer version - if (semver.compare(currentVersion, latestVersion) >= 0) { - reporter.success(reporter.lang('selfUpdateNoNewer')); - return; - } - - reporter.info(reporter.lang('selfUpdateDownloading', latestVersion)); - - const thisVersionRoot = path.resolve(__dirname, '..', '..', '..'); - let updatesFolder = path.resolve(thisVersionRoot, '..'); - const isCurrentVersionAnUpdate = path.basename(updatesFolder) === SELF_UPDATE_DOWNLOAD_FOLDER; - - if (!isCurrentVersionAnUpdate) { - updatesFolder = path.resolve(thisVersionRoot, SELF_UPDATE_DOWNLOAD_FOLDER); - } - - const locToUnzip = path.resolve(updatesFolder, latestVersion); - - await unlink(locToUnzip); - - const fetcher = new TarballFetcher(locToUnzip, { - type: 'tarball', - registry: 'yarn', - reference: SELF_UPDATE_TARBALL_URL, - hash: null, - }, config, false); - await fetcher.fetch(); - - // this links the downloaded release to bin/yarn.js - await symlink(locToUnzip, path.resolve(updatesFolder, 'current')); - - // clean garbage - const pathToClean = path.resolve(updatesFolder, 'to_clean'); - if (await exists(pathToClean)) { - const previousVersionToCleanup = await realpath(pathToClean); - await unlink(previousVersionToCleanup); - await unlink(pathToClean); - } - - if (isCurrentVersionAnUpdate) { - // current yarn installation is an update, let's clean it next time an update is run - // because it may still be in use now - await symlink(thisVersionRoot, pathToClean); - } - - // reset the roadrunner cache - roadrunner.reset(CACHE_FILENAME); - - reporter.success(reporter.lang('selfUpdateReleased', latestVersion)); -}