@pnpm/plugin-commands-setup 1.1.38 → 1.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ import PnpmError from '@pnpm/error';
2
+ export declare class BadHomeDirError extends PnpmError {
3
+ constructor({ wantedDir, currentDir }: {
4
+ wantedDir: string;
5
+ currentDir: string;
6
+ });
7
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BadHomeDirError = void 0;
7
+ const error_1 = __importDefault(require("@pnpm/error"));
8
+ class BadHomeDirError extends error_1.default {
9
+ constructor({ wantedDir, currentDir }) {
10
+ super('DIFFERENT_HOME_DIR_IS_SET', `Currently 'PNPM_HOME' is set to '${currentDir}'`, {
11
+ hint: 'If you want to override the existing PNPM_HOME env variable, use the --force option',
12
+ });
13
+ }
14
+ }
15
+ exports.BadHomeDirError = BadHomeDirError;
16
+ //# sourceMappingURL=BadHomeDirError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadHomeDirError.js","sourceRoot":"","sources":["../src/BadHomeDirError.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAmC;AAEnC,MAAa,eAAgB,SAAQ,eAAS;IAC5C,YAAa,EAAE,SAAS,EAAE,UAAU,EAA6C;QAC/E,KAAK,CAAC,2BAA2B,EAAE,oCAAoC,UAAU,GAAG,EAAE;YACpF,IAAI,EAAE,qFAAqF;SAC5F,CAAC,CAAA;IACJ,CAAC;CACF;AAND,0CAMC"}
package/lib/setup.d.ts CHANGED
@@ -1,8 +1,11 @@
1
1
  export declare const rcOptionsTypes: () => {};
2
- export declare const cliOptionsTypes: () => {};
2
+ export declare const cliOptionsTypes: () => {
3
+ force: BooleanConstructor;
4
+ };
3
5
  export declare const shorthands: {};
4
6
  export declare const commandNames: string[];
5
7
  export declare function help(): string;
6
8
  export declare function handler(opts: {
9
+ force?: boolean;
7
10
  pnpmHomeDir: string;
8
11
  }): Promise<string>;
package/lib/setup.js CHANGED
@@ -11,16 +11,30 @@ const cli_utils_1 = require("@pnpm/cli-utils");
11
11
  const logger_1 = __importDefault(require("@pnpm/logger"));
12
12
  const render_help_1 = __importDefault(require("render-help"));
13
13
  const setupOnWindows_1 = require("./setupOnWindows");
14
+ const BadHomeDirError_1 = require("./BadHomeDirError");
14
15
  const rcOptionsTypes = () => ({});
15
16
  exports.rcOptionsTypes = rcOptionsTypes;
16
- const cliOptionsTypes = () => ({});
17
+ const cliOptionsTypes = () => ({
18
+ force: Boolean,
19
+ });
17
20
  exports.cliOptionsTypes = cliOptionsTypes;
18
21
  exports.shorthands = {};
19
22
  exports.commandNames = ['setup'];
20
23
  function help() {
21
24
  return (0, render_help_1.default)({
22
25
  description: 'Sets up pnpm',
23
- descriptionLists: [],
26
+ descriptionLists: [
27
+ {
28
+ title: 'Options',
29
+ list: [
30
+ {
31
+ description: 'Override the PNPM_HOME env variable in case it already exists',
32
+ name: '--force',
33
+ shortAlias: '-f',
34
+ },
35
+ ],
36
+ },
37
+ ],
24
38
  url: (0, cli_utils_1.docsUrl)('setup'),
25
39
  usages: ['pnpm setup'],
26
40
  });
@@ -47,65 +61,100 @@ function copyCli(currentLocation, targetDir) {
47
61
  fs_1.default.copyFileSync(currentLocation, newExecPath);
48
62
  }
49
63
  async function handler(opts) {
50
- const currentShell = typeof process.env.SHELL === 'string' ? path_1.default.basename(process.env.SHELL) : null;
64
+ var _a;
65
+ const currentShell = detectCurrentShell();
51
66
  const execPath = getExecPath();
52
67
  if (execPath.match(/\.[cm]?js$/) == null) {
53
68
  copyCli(execPath, opts.pnpmHomeDir);
54
69
  }
55
- const updateOutput = await updateShell(currentShell, opts.pnpmHomeDir);
70
+ const updateOutput = await updateShell(currentShell, opts.pnpmHomeDir, { force: (_a = opts.force) !== null && _a !== void 0 ? _a : false });
56
71
  return `${updateOutput}
57
72
 
58
73
  Setup complete. Open a new terminal to start using pnpm.`;
59
74
  }
60
75
  exports.handler = handler;
61
- async function updateShell(currentShell, pnpmHomeDir) {
76
+ function detectCurrentShell() {
77
+ if (process.env.ZSH_VERSION)
78
+ return 'zsh';
79
+ if (process.env.BASH_VERSION)
80
+ return 'bash';
81
+ if (process.env.FISH_VERSION)
82
+ return 'fish';
83
+ return typeof process.env.SHELL === 'string' ? path_1.default.basename(process.env.SHELL) : null;
84
+ }
85
+ async function updateShell(currentShell, pnpmHomeDir, opts) {
62
86
  switch (currentShell) {
63
87
  case 'bash': {
64
88
  const configFile = path_1.default.join(os_1.default.homedir(), '.bashrc');
65
- return setupShell(configFile, pnpmHomeDir);
89
+ return setupShell(configFile, pnpmHomeDir, opts);
66
90
  }
67
91
  case 'zsh': {
68
92
  const configFile = path_1.default.join(os_1.default.homedir(), '.zshrc');
69
- return setupShell(configFile, pnpmHomeDir);
93
+ return setupShell(configFile, pnpmHomeDir, opts);
70
94
  }
71
95
  case 'fish': {
72
- return setupFishShell(pnpmHomeDir);
96
+ return setupFishShell(pnpmHomeDir, opts);
73
97
  }
74
98
  }
75
99
  if (process.platform === 'win32') {
76
- return (0, setupOnWindows_1.setupWindowsEnvironmentPath)(pnpmHomeDir);
100
+ return (0, setupOnWindows_1.setupWindowsEnvironmentPath)(pnpmHomeDir, opts);
77
101
  }
78
102
  return 'Could not infer shell type.';
79
103
  }
80
- async function setupShell(configFile, pnpmHomeDir) {
81
- const content = `export PNPM_HOME="${pnpmHomeDir}"
104
+ async function setupShell(configFile, pnpmHomeDir, opts) {
105
+ const content = `# pnpm
106
+ export PNPM_HOME="${pnpmHomeDir}"
82
107
  export PATH="$PNPM_HOME:$PATH"
108
+ # pnpm end
83
109
  `;
84
110
  if (!fs_1.default.existsSync(configFile)) {
85
111
  await fs_1.default.promises.writeFile(configFile, content, 'utf8');
86
112
  return `Created ${configFile}`;
87
113
  }
88
114
  const configContent = await fs_1.default.promises.readFile(configFile, 'utf8');
89
- if (configContent.includes('PNPM_HOME')) {
90
- return `PNPM_HOME is already in ${configFile}`;
115
+ if (!configContent.includes('PNPM_HOME')) {
116
+ await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
117
+ return `Updated ${configFile}`;
118
+ }
119
+ const match = configContent.match(/export PNPM_HOME="(.*)"/);
120
+ if (match && match[1] !== pnpmHomeDir) {
121
+ if (!opts.force) {
122
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
123
+ }
124
+ const newConfigContent = replaceSection(configContent, content);
125
+ await fs_1.default.promises.writeFile(configFile, newConfigContent, 'utf8');
126
+ return `Updated ${configFile}`;
91
127
  }
92
- await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
93
- return `Updated ${configFile}`;
128
+ return `PNPM_HOME is already in ${configFile}`;
94
129
  }
95
- async function setupFishShell(pnpmHomeDir) {
130
+ async function setupFishShell(pnpmHomeDir, opts) {
96
131
  const configFile = path_1.default.join(os_1.default.homedir(), '.config/fish/config.fish');
97
- const content = `set -gx PNPM_HOME "${pnpmHomeDir}"
132
+ const content = `# pnpm
133
+ set -gx PNPM_HOME "${pnpmHomeDir}"
98
134
  set -gx PATH "$PNPM_HOME" $PATH
135
+ # pnpm end
99
136
  `;
100
137
  if (!fs_1.default.existsSync(configFile)) {
101
138
  await fs_1.default.promises.writeFile(configFile, content, 'utf8');
102
139
  return `Created ${configFile}`;
103
140
  }
104
141
  const configContent = await fs_1.default.promises.readFile(configFile, 'utf8');
105
- if (configContent.includes('PNPM_HOME')) {
106
- return `PNPM_HOME is already in ${configFile}`;
142
+ if (!configContent.includes('PNPM_HOME')) {
143
+ await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
144
+ return `Updated ${configFile}`;
107
145
  }
108
- await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
109
- return `Updated ${configFile}`;
146
+ const match = configContent.match(/set -gx PNPM_HOME "(.*)"/);
147
+ if (match && match[1] !== pnpmHomeDir) {
148
+ if (!opts.force) {
149
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
150
+ }
151
+ const newConfigContent = replaceSection(configContent, content);
152
+ await fs_1.default.promises.writeFile(configFile, newConfigContent, 'utf8');
153
+ return `Updated ${configFile}`;
154
+ }
155
+ return `PNPM_HOME is already in ${configFile}`;
156
+ }
157
+ function replaceSection(originalContent, newSection) {
158
+ return originalContent.replace(/# pnpm[\s\S]*# pnpm end/g, newSection);
110
159
  }
111
160
  //# sourceMappingURL=setup.js.map
package/lib/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAmB;AACnB,4CAAmB;AACnB,gDAAuB;AACvB,+CAAyC;AACzC,0DAAiC;AACjC,8DAAoC;AACpC,qDAA8D;AAEvD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AAA3B,QAAA,cAAc,kBAAa;AAEjC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AAA5B,QAAA,eAAe,mBAAa;AAE5B,QAAA,UAAU,GAAG,EAAE,CAAA;AAEf,QAAA,YAAY,GAAG,CAAC,OAAO,CAAC,CAAA;AAErC,SAAgB,IAAI;IAClB,OAAO,IAAA,qBAAU,EAAC;QAChB,WAAW,EAAE,cAAc;QAC3B,gBAAgB,EAAE,EACjB;QACD,GAAG,EAAE,IAAA,mBAAO,EAAC,OAAO,CAAC;QACrB,MAAM,EAAE,CAAC,YAAY,CAAC;KACvB,CAAC,CAAA;AACJ,CAAC;AARD,oBAQC;AAED,SAAS,WAAW;IAClB,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;QAC1B,4FAA4F;QAC5F,8EAA8E;QAC9E,4CAA4C;QAC5C,OAAO,OAAO,CAAC,QAAQ,CAAA;KACxB;IACD,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;AACvE,CAAC;AAED,SAAS,OAAO,CAAE,eAAuB,EAAE,SAAiB;IAC1D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAA;IACxE,IAAI,cAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE;QAAE,OAAM;IAC9D,gBAAM,CAAC,IAAI,CAAC;QACV,OAAO,EAAE,yBAAyB,eAAe,OAAO,WAAW,EAAE;QACrE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;IACF,YAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC5C,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;AAC/C,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,IAEC;IAED,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpG,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,IAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;QACxC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;KACpC;IACD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACtE,OAAO,GAAG,YAAY;;yDAEiC,CAAA;AACzD,CAAC;AAdD,0BAcC;AAED,KAAK,UAAU,WAAW,CAAE,YAA2B,EAAE,WAAmB;IAC1E,QAAQ,YAAY,EAAE;QACtB,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAA;YACrD,OAAO,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;SAC3C;QACD,KAAK,KAAK,CAAC,CAAC;YACV,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;YACpD,OAAO,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;SAC3C;QACD,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,cAAc,CAAC,WAAW,CAAC,CAAA;SACnC;KACA;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO,IAAA,4CAA2B,EAAC,WAAW,CAAC,CAAA;KAChD;IAED,OAAO,6BAA6B,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,UAAU,CAAE,UAAkB,EAAE,WAAmB;IAChE,MAAM,OAAO,GAAG,qBAAqB,WAAW;;CAEjD,CAAA;IACC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACxD,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,MAAM,aAAa,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACpE,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACvC,OAAO,2BAA2B,UAAU,EAAE,CAAA;KAC/C;IACD,MAAM,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IAChE,OAAO,WAAW,UAAU,EAAE,CAAA;AAChC,CAAC;AAED,KAAK,UAAU,cAAc,CAAE,WAAmB;IAChD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,sBAAsB,WAAW;;CAElD,CAAA;IACC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC9B,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACxD,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,MAAM,aAAa,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IACpE,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACvC,OAAO,2BAA2B,UAAU,EAAE,CAAA;KAC/C;IACD,MAAM,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;IAChE,OAAO,WAAW,UAAU,EAAE,CAAA;AAChC,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1,3 @@
1
- export declare function setupWindowsEnvironmentPath(pnpmHomeDir: string): Promise<string>;
1
+ export declare function setupWindowsEnvironmentPath(pnpmHomeDir: string, opts: {
2
+ force: boolean;
3
+ }): Promise<string>;
@@ -6,27 +6,66 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.setupWindowsEnvironmentPath = void 0;
7
7
  const path_1 = require("path");
8
8
  const execa_1 = __importDefault(require("execa"));
9
- async function setupWindowsEnvironmentPath(pnpmHomeDir) {
10
- const pathRegex = /^ {4}(?<name>PATH) {4}(?<type>\w+) {4}(?<data>.*)$/gim;
11
- const pnpmHomeRegex = /^ {4}(?<name>PNPM_HOME) {4}(?<type>\w+) {4}(?<data>.*)$/gim;
12
- const regKey = 'HKEY_CURRENT_USER\\Environment';
13
- const queryResult = await (0, execa_1.default)('reg', ['query', regKey]);
9
+ const string_prototype_matchall_1 = __importDefault(require("string.prototype.matchall"));
10
+ const BadHomeDirError_1 = require("./BadHomeDirError");
11
+ const REG_KEY = 'HKEY_CURRENT_USER\\Environment';
12
+ function findEnvValuesInRegistry(regEntries, envVarName) {
13
+ const regexp = new RegExp(`^ {4}(?<name>${envVarName}) {4}(?<type>\\w+) {4}(?<data>.*)$`, 'gim');
14
+ return Array.from((0, string_prototype_matchall_1.default)(regEntries, regexp));
15
+ }
16
+ function setEnvVarInRegistry(envVarName, envVarValue) {
17
+ // `windowsHide` in `execa` is true by default, which will cause `chcp` to have no effect.
18
+ return (0, execa_1.default)('reg', ['add', REG_KEY, '/v', envVarName, '/t', 'REG_EXPAND_SZ', '/d', envVarValue, '/f'], { windowsHide: false });
19
+ }
20
+ function pathIncludesDir(pathValue, dir) {
21
+ const dirPath = path_1.win32.parse(path_1.win32.normalize(dir));
22
+ return pathValue
23
+ .split(path_1.win32.delimiter)
24
+ .map(p => path_1.win32.normalize(p))
25
+ .map(p => path_1.win32.parse(p))
26
+ .map(p => `${p.dir}${path_1.win32.sep}${p.base}`.toUpperCase())
27
+ .filter(p => p !== '')
28
+ .includes(`${dirPath.dir}${path_1.win32.sep}${dirPath.base}`.toUpperCase());
29
+ }
30
+ async function setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
31
+ var _a;
32
+ // Use `chcp` to make `reg` use utf8 encoding for output.
33
+ // Otherwise, the non-ascii characters in the environment variables will become garbled characters.
34
+ const chcpResult = await (0, execa_1.default)('chcp');
35
+ const cpMatch = (_a = /\d+/.exec(chcpResult.stdout)) !== null && _a !== void 0 ? _a : [];
36
+ const cpBak = parseInt(cpMatch[0]);
37
+ if (chcpResult.failed || !(cpBak > 0)) {
38
+ return `exec chcp failed: ${cpBak}, ${chcpResult.stderr}`;
39
+ }
40
+ await (0, execa_1.default)('chcp', ['65001']);
41
+ try {
42
+ return await _setupWindowsEnvironmentPath(path_1.win32.normalize(pnpmHomeDir), opts);
43
+ }
44
+ finally {
45
+ await (0, execa_1.default)('chcp', [cpBak.toString()]);
46
+ }
47
+ }
48
+ exports.setupWindowsEnvironmentPath = setupWindowsEnvironmentPath;
49
+ async function _setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
50
+ var _a;
51
+ const queryResult = await (0, execa_1.default)('reg', ['query', REG_KEY], { windowsHide: false });
14
52
  if (queryResult.failed) {
15
53
  return 'Win32 registry environment values could not be retrieved';
16
54
  }
17
55
  const queryOutput = queryResult.stdout;
18
- const pathValueMatch = [...queryOutput.matchAll(pathRegex)];
19
- const homeValueMatch = [...queryOutput.matchAll(pnpmHomeRegex)];
56
+ const pathValueMatch = findEnvValuesInRegistry(queryOutput, 'PATH');
57
+ const homeValueMatch = findEnvValuesInRegistry(queryOutput, 'PNPM_HOME');
20
58
  let commitNeeded = false;
21
- let homeDir = pnpmHomeDir;
22
59
  const logger = [];
23
- if (homeValueMatch.length === 1) {
24
- homeDir = homeValueMatch[0].groups.data;
25
- logger.push(`Currently 'PNPM_HOME' is set to '${homeDir}'`);
60
+ if (homeValueMatch.length === 1 && !opts.force) {
61
+ const currentHomeDir = homeValueMatch[0].groups.data;
62
+ if (currentHomeDir !== pnpmHomeDir) {
63
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: currentHomeDir, wantedDir: pnpmHomeDir });
64
+ }
26
65
  }
27
66
  else {
28
- logger.push(`Setting 'PNPM_HOME' to value '${homeDir}'`);
29
- const addResult = await (0, execa_1.default)('reg', ['add', regKey, '/v', 'PNPM_HOME', '/t', 'REG_EXPAND_SZ', '/d', homeDir, '/f']);
67
+ logger.push(`Setting 'PNPM_HOME' to value '${pnpmHomeDir}'`);
68
+ const addResult = await setEnvVarInRegistry('PNPM_HOME', pnpmHomeDir);
30
69
  if (addResult.failed) {
31
70
  logger.push(`\t${addResult.stderr}`);
32
71
  }
@@ -35,42 +74,31 @@ async function setupWindowsEnvironmentPath(pnpmHomeDir) {
35
74
  logger.push(`\t${addResult.stdout}`);
36
75
  }
37
76
  }
38
- if (pathValueMatch.length === 1) {
39
- const pathData = pathValueMatch[0].groups.data;
40
- if (pathData == null || pathData.trim() === '') {
41
- logger.push('Current PATH is empty. No changes to this environment variable are applied');
77
+ const pathData = (_a = pathValueMatch[0]) === null || _a === void 0 ? void 0 : _a.groups.data;
78
+ if (pathData === undefined) {
79
+ logger.push('Current PATH is not set. No changes to this environment variable are applied');
80
+ }
81
+ else if (pathData == null || pathData.trim() === '') {
82
+ logger.push('Current PATH is empty. No changes to this environment variable are applied');
83
+ }
84
+ else if (pathIncludesDir(pathData, pnpmHomeDir)) {
85
+ logger.push('PATH already contains PNPM_HOME');
86
+ }
87
+ else {
88
+ logger.push('Updating PATH');
89
+ const newPathValue = `${pnpmHomeDir}${path_1.win32.delimiter}${pathData}`;
90
+ const addResult = await setEnvVarInRegistry(pathValueMatch[0].groups.name, newPathValue);
91
+ if (addResult.failed) {
92
+ logger.push(`\t${addResult.stderr}`);
42
93
  }
43
94
  else {
44
- const homeDirPath = path_1.win32.parse(path_1.win32.normalize(homeDir));
45
- if (pathData
46
- .split(path_1.win32.delimiter)
47
- .map(p => path_1.win32.normalize(p))
48
- .map(p => path_1.win32.parse(p))
49
- .map(p => `${p.dir}${path_1.win32.sep}${p.base}`.toUpperCase())
50
- .filter(p => p !== '')
51
- .includes(`${homeDirPath.dir}${path_1.win32.sep}${homeDirPath.base}`.toUpperCase())) {
52
- logger.push('PATH already contains PNPM_HOME');
53
- }
54
- else {
55
- logger.push('Updating PATH');
56
- const addResult = await (0, execa_1.default)('reg', ['add', regKey, '/v', pathValueMatch[0].groups.name, '/t', 'REG_EXPAND_SZ', '/d', `${homeDir}${path_1.win32.delimiter}${pathData}`, '/f']);
57
- if (addResult.failed) {
58
- logger.push(`\t${addResult.stderr}`);
59
- }
60
- else {
61
- commitNeeded = true;
62
- logger.push(`\t${addResult.stdout}`);
63
- }
64
- }
95
+ commitNeeded = true;
96
+ logger.push(`\t${addResult.stdout}`);
65
97
  }
66
98
  }
67
- else {
68
- logger.push('Current PATH is not set. No changes to this environment variable are applied');
69
- }
70
99
  if (commitNeeded) {
71
- await (0, execa_1.default)('setx', ['PNPM_HOME', homeDir]);
100
+ await (0, execa_1.default)('setx', ['PNPM_HOME', pnpmHomeDir]);
72
101
  }
73
102
  return logger.join('\n');
74
103
  }
75
- exports.setupWindowsEnvironmentPath = setupWindowsEnvironmentPath;
76
104
  //# sourceMappingURL=setupOnWindows.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setupOnWindows.js","sourceRoot":"","sources":["../src/setupOnWindows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setupOnWindows.js","sourceRoot":"","sources":["../src/setupOnWindows.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/plugin-commands-setup",
3
- "version": "1.1.38",
3
+ "version": "1.1.39",
4
4
  "description": "pnpm commands for setting up pnpm",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -24,8 +24,10 @@
24
24
  "homepage": "https://github.com/pnpm/pnpm/blob/main/packages/plugin-commands-setup#readme",
25
25
  "dependencies": {
26
26
  "@pnpm/cli-utils": "0.6.53",
27
+ "@pnpm/error": "2.1.0",
27
28
  "execa": "npm:safe-execa@^0.1.1",
28
- "render-help": "^1.0.1"
29
+ "render-help": "^1.0.1",
30
+ "string.prototype.matchall": "^4.0.7"
29
31
  },
30
32
  "funding": "https://opencollective.com/pnpm",
31
33
  "peerDependencies": {
@@ -33,8 +35,9 @@
33
35
  },
34
36
  "devDependencies": {
35
37
  "@pnpm/logger": "^4.0.0",
36
- "@pnpm/plugin-commands-setup": "1.1.38",
37
- "@pnpm/prepare": "0.0.36"
38
+ "@pnpm/plugin-commands-setup": "1.1.39",
39
+ "@pnpm/prepare": "0.0.37",
40
+ "@types/string.prototype.matchall": "^4.0.1"
38
41
  },
39
42
  "scripts": {
40
43
  "lint": "eslint src/**/*.ts test/**/*.ts",