@pnpm/plugin-commands-setup 2.0.4 → 2.0.5

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,99 @@ 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
+ const currentShell = detectCurrentShell();
51
65
  const execPath = getExecPath();
52
66
  if (execPath.match(/\.[cm]?js$/) == null) {
53
67
  copyCli(execPath, opts.pnpmHomeDir);
54
68
  }
55
- const updateOutput = await updateShell(currentShell, opts.pnpmHomeDir);
69
+ const updateOutput = await updateShell(currentShell, opts.pnpmHomeDir, { force: opts.force ?? false });
56
70
  return `${updateOutput}
57
71
 
58
72
  Setup complete. Open a new terminal to start using pnpm.`;
59
73
  }
60
74
  exports.handler = handler;
61
- async function updateShell(currentShell, pnpmHomeDir) {
75
+ function detectCurrentShell() {
76
+ if (process.env.ZSH_VERSION)
77
+ return 'zsh';
78
+ if (process.env.BASH_VERSION)
79
+ return 'bash';
80
+ if (process.env.FISH_VERSION)
81
+ return 'fish';
82
+ return typeof process.env.SHELL === 'string' ? path_1.default.basename(process.env.SHELL) : null;
83
+ }
84
+ async function updateShell(currentShell, pnpmHomeDir, opts) {
62
85
  switch (currentShell) {
63
86
  case 'bash': {
64
87
  const configFile = path_1.default.join(os_1.default.homedir(), '.bashrc');
65
- return setupShell(configFile, pnpmHomeDir);
88
+ return setupShell(configFile, pnpmHomeDir, opts);
66
89
  }
67
90
  case 'zsh': {
68
91
  const configFile = path_1.default.join(os_1.default.homedir(), '.zshrc');
69
- return setupShell(configFile, pnpmHomeDir);
92
+ return setupShell(configFile, pnpmHomeDir, opts);
70
93
  }
71
94
  case 'fish': {
72
- return setupFishShell(pnpmHomeDir);
95
+ return setupFishShell(pnpmHomeDir, opts);
73
96
  }
74
97
  }
75
98
  if (process.platform === 'win32') {
76
- return (0, setupOnWindows_1.setupWindowsEnvironmentPath)(pnpmHomeDir);
99
+ return (0, setupOnWindows_1.setupWindowsEnvironmentPath)(pnpmHomeDir, opts);
77
100
  }
78
101
  return 'Could not infer shell type.';
79
102
  }
80
- async function setupShell(configFile, pnpmHomeDir) {
81
- const content = `export PNPM_HOME="${pnpmHomeDir}"
103
+ async function setupShell(configFile, pnpmHomeDir, opts) {
104
+ const content = `# pnpm
105
+ export PNPM_HOME="${pnpmHomeDir}"
82
106
  export PATH="$PNPM_HOME:$PATH"
107
+ # pnpm end
83
108
  `;
84
109
  if (!fs_1.default.existsSync(configFile)) {
85
110
  await fs_1.default.promises.writeFile(configFile, content, 'utf8');
86
111
  return `Created ${configFile}`;
87
112
  }
88
113
  const configContent = await fs_1.default.promises.readFile(configFile, 'utf8');
89
- if (configContent.includes('PNPM_HOME')) {
90
- return `PNPM_HOME is already in ${configFile}`;
114
+ if (!configContent.includes('PNPM_HOME')) {
115
+ await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
116
+ return `Updated ${configFile}`;
117
+ }
118
+ const match = configContent.match(/export PNPM_HOME="(.*)"/);
119
+ if (match && match[1] !== pnpmHomeDir) {
120
+ if (!opts.force) {
121
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
122
+ }
123
+ const newConfigContent = replaceSection(configContent, content);
124
+ await fs_1.default.promises.writeFile(configFile, newConfigContent, 'utf8');
125
+ return `Updated ${configFile}`;
91
126
  }
92
- await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
93
- return `Updated ${configFile}`;
127
+ return `PNPM_HOME is already in ${configFile}`;
94
128
  }
95
- async function setupFishShell(pnpmHomeDir) {
129
+ async function setupFishShell(pnpmHomeDir, opts) {
96
130
  const configFile = path_1.default.join(os_1.default.homedir(), '.config/fish/config.fish');
97
- const content = `set -gx PNPM_HOME "${pnpmHomeDir}"
131
+ const content = `# pnpm
132
+ set -gx PNPM_HOME "${pnpmHomeDir}"
98
133
  set -gx PATH "$PNPM_HOME" $PATH
134
+ # pnpm end
99
135
  `;
100
136
  if (!fs_1.default.existsSync(configFile)) {
101
137
  await fs_1.default.promises.writeFile(configFile, content, 'utf8');
102
138
  return `Created ${configFile}`;
103
139
  }
104
140
  const configContent = await fs_1.default.promises.readFile(configFile, 'utf8');
105
- if (configContent.includes('PNPM_HOME')) {
106
- return `PNPM_HOME is already in ${configFile}`;
141
+ if (!configContent.includes('PNPM_HOME')) {
142
+ await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
143
+ return `Updated ${configFile}`;
107
144
  }
108
- await fs_1.default.promises.appendFile(configFile, `\n${content}`, 'utf8');
109
- return `Updated ${configFile}`;
145
+ const match = configContent.match(/set -gx PNPM_HOME "(.*)"/);
146
+ if (match && match[1] !== pnpmHomeDir) {
147
+ if (!opts.force) {
148
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: match[1], wantedDir: pnpmHomeDir });
149
+ }
150
+ const newConfigContent = replaceSection(configContent, content);
151
+ await fs_1.default.promises.writeFile(configFile, newConfigContent, 'utf8');
152
+ return `Updated ${configFile}`;
153
+ }
154
+ return `PNPM_HOME is already in ${configFile}`;
155
+ }
156
+ function replaceSection(originalContent, newSection) {
157
+ return originalContent.replace(/# pnpm[\s\S]*# pnpm end/g, newSection);
110
158
  }
111
159
  //# 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":"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"}
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;AAC9D,uDAAmD;AAE5C,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AAA3B,QAAA,cAAc,kBAAa;AAEjC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,OAAO;CACf,CAAC,CAAA;AAFW,QAAA,eAAe,mBAE1B;AAEW,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;YAChB;gBACE,KAAK,EAAE,SAAS;gBAEhB,IAAI,EAAE;oBACJ;wBACE,WAAW,EAAE,+DAA+D;wBAC5E,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE,IAAI;qBACjB;iBACF;aACF;SACF;QACD,GAAG,EAAE,IAAA,mBAAO,EAAC,OAAO,CAAC;QACrB,MAAM,EAAE,CAAC,YAAY,CAAC;KACvB,CAAC,CAAA;AACJ,CAAC;AAnBD,oBAmBC;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,IAGC;IAED,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAA;IACzC,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,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,CAAA;IACtG,OAAO,GAAG,YAAY;;yDAEiC,CAAA;AACzD,CAAC;AAfD,0BAeC;AAED,SAAS,kBAAkB;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,MAAM,CAAA;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAAE,OAAO,MAAM,CAAA;IAC3C,OAAO,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;AACxF,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,YAA2B,EAC3B,WAAmB,EACnB,IAAwB;IAExB,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,EAAE,IAAI,CAAC,CAAA;SACjD;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,EAAE,IAAI,CAAC,CAAA;SACjD;QACD,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;SACzC;KACA;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;QAChC,OAAO,IAAA,4CAA2B,EAAC,WAAW,EAAE,IAAI,CAAC,CAAA;KACtD;IAED,OAAO,6BAA6B,CAAA;AACtC,CAAC;AAED,KAAK,UAAU,UAAU,CAAE,UAAkB,EAAE,WAAmB,EAAE,IAAwB;IAC1F,MAAM,OAAO,GAAG;oBACE,WAAW;;;CAG9B,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,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACxC,MAAM,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;QAChE,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5D,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,iCAAe,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;SAC5E;QACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACjE,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,OAAO,2BAA2B,UAAU,EAAE,CAAA;AAChD,CAAC;AAED,KAAK,UAAU,cAAc,CAAE,WAAmB,EAAE,IAAwB;IAC1E,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,0BAA0B,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG;qBACG,WAAW;;;CAG/B,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,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QACxC,MAAM,YAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,OAAO,EAAE,EAAE,MAAM,CAAC,CAAA;QAChE,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7D,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,iCAAe,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;SAC5E;QACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAC/D,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACjE,OAAO,WAAW,UAAU,EAAE,CAAA;KAC/B;IACD,OAAO,2BAA2B,UAAU,EAAE,CAAA;AAChD,CAAC;AAED,SAAS,cAAc,CAAE,eAAuB,EAAE,UAAkB;IAClE,OAAO,eAAe,CAAC,OAAO,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAA;AACxE,CAAC"}
@@ -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,63 @@ 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 BadHomeDirError_1 = require("./BadHomeDirError");
10
+ const REG_KEY = 'HKEY_CURRENT_USER\\Environment';
11
+ function findEnvValuesInRegistry(regEntries, envVarName) {
12
+ const regexp = new RegExp(`^ {4}(?<name>${envVarName}) {4}(?<type>\\w+) {4}(?<data>.*)$`, 'gim');
13
+ return Array.from(regEntries.matchAll(regexp));
14
+ }
15
+ function setEnvVarInRegistry(envVarName, envVarValue) {
16
+ // `windowsHide` in `execa` is true by default, which will cause `chcp` to have no effect.
17
+ return (0, execa_1.default)('reg', ['add', REG_KEY, '/v', envVarName, '/t', 'REG_EXPAND_SZ', '/d', envVarValue, '/f'], { windowsHide: false });
18
+ }
19
+ function pathIncludesDir(pathValue, dir) {
20
+ const dirPath = path_1.win32.parse(path_1.win32.normalize(dir));
21
+ return pathValue
22
+ .split(path_1.win32.delimiter)
23
+ .map(p => path_1.win32.normalize(p))
24
+ .map(p => path_1.win32.parse(p))
25
+ .map(p => `${p.dir}${path_1.win32.sep}${p.base}`.toUpperCase())
26
+ .filter(p => p !== '')
27
+ .includes(`${dirPath.dir}${path_1.win32.sep}${dirPath.base}`.toUpperCase());
28
+ }
29
+ async function setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
30
+ // Use `chcp` to make `reg` use utf8 encoding for output.
31
+ // Otherwise, the non-ascii characters in the environment variables will become garbled characters.
32
+ const chcpResult = await (0, execa_1.default)('chcp');
33
+ const cpMatch = /\d+/.exec(chcpResult.stdout) ?? [];
34
+ const cpBak = parseInt(cpMatch[0]);
35
+ if (chcpResult.failed || !(cpBak > 0)) {
36
+ return `exec chcp failed: ${cpBak}, ${chcpResult.stderr}`;
37
+ }
38
+ await (0, execa_1.default)('chcp', ['65001']);
39
+ try {
40
+ return await _setupWindowsEnvironmentPath(path_1.win32.normalize(pnpmHomeDir), opts);
41
+ }
42
+ finally {
43
+ await (0, execa_1.default)('chcp', [cpBak.toString()]);
44
+ }
45
+ }
46
+ exports.setupWindowsEnvironmentPath = setupWindowsEnvironmentPath;
47
+ async function _setupWindowsEnvironmentPath(pnpmHomeDir, opts) {
48
+ const queryResult = await (0, execa_1.default)('reg', ['query', REG_KEY], { windowsHide: false });
14
49
  if (queryResult.failed) {
15
50
  return 'Win32 registry environment values could not be retrieved';
16
51
  }
17
52
  const queryOutput = queryResult.stdout;
18
- const pathValueMatch = [...queryOutput.matchAll(pathRegex)];
19
- const homeValueMatch = [...queryOutput.matchAll(pnpmHomeRegex)];
53
+ const pathValueMatch = findEnvValuesInRegistry(queryOutput, 'PATH');
54
+ const homeValueMatch = findEnvValuesInRegistry(queryOutput, 'PNPM_HOME');
20
55
  let commitNeeded = false;
21
- let homeDir = pnpmHomeDir;
22
56
  const logger = [];
23
- if (homeValueMatch.length === 1) {
24
- homeDir = homeValueMatch[0].groups.data;
25
- logger.push(`Currently 'PNPM_HOME' is set to '${homeDir}'`);
57
+ if (homeValueMatch.length === 1 && !opts.force) {
58
+ const currentHomeDir = homeValueMatch[0].groups.data;
59
+ if (currentHomeDir !== pnpmHomeDir) {
60
+ throw new BadHomeDirError_1.BadHomeDirError({ currentDir: currentHomeDir, wantedDir: pnpmHomeDir });
61
+ }
26
62
  }
27
63
  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']);
64
+ logger.push(`Setting 'PNPM_HOME' to value '${pnpmHomeDir}'`);
65
+ const addResult = await setEnvVarInRegistry('PNPM_HOME', pnpmHomeDir);
30
66
  if (addResult.failed) {
31
67
  logger.push(`\t${addResult.stderr}`);
32
68
  }
@@ -35,42 +71,31 @@ async function setupWindowsEnvironmentPath(pnpmHomeDir) {
35
71
  logger.push(`\t${addResult.stdout}`);
36
72
  }
37
73
  }
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');
74
+ const pathData = pathValueMatch[0]?.groups.data;
75
+ if (pathData === undefined) {
76
+ logger.push('Current PATH is not set. No changes to this environment variable are applied');
77
+ }
78
+ else if (pathData == null || pathData.trim() === '') {
79
+ logger.push('Current PATH is empty. No changes to this environment variable are applied');
80
+ }
81
+ else if (pathIncludesDir(pathData, pnpmHomeDir) || pathData.split(path_1.win32.delimiter).includes('%PNPM_HOME%')) {
82
+ logger.push('PATH already contains PNPM_HOME');
83
+ }
84
+ else {
85
+ logger.push('Updating PATH');
86
+ const newPathValue = `%PNPM_HOME%${path_1.win32.delimiter}${pathData}`;
87
+ const addResult = await setEnvVarInRegistry(pathValueMatch[0].groups.name, newPathValue);
88
+ if (addResult.failed) {
89
+ logger.push(`\t${addResult.stderr}`);
42
90
  }
43
91
  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
- }
92
+ commitNeeded = true;
93
+ logger.push(`\t${addResult.stdout}`);
65
94
  }
66
95
  }
67
- else {
68
- logger.push('Current PATH is not set. No changes to this environment variable are applied');
69
- }
70
96
  if (commitNeeded) {
71
- await (0, execa_1.default)('setx', ['PNPM_HOME', homeDir]);
97
+ await (0, execa_1.default)('setx', ['PNPM_HOME', pnpmHomeDir]);
72
98
  }
73
99
  return logger.join('\n');
74
100
  }
75
- exports.setupWindowsEnvironmentPath = setupWindowsEnvironmentPath;
76
101
  //# 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": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "pnpm commands for setting up pnpm",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -23,7 +23,8 @@
23
23
  },
24
24
  "homepage": "https://github.com/pnpm/pnpm/blob/main/packages/plugin-commands-setup#readme",
25
25
  "dependencies": {
26
- "@pnpm/cli-utils": "0.7.4",
26
+ "@pnpm/cli-utils": "0.7.5",
27
+ "@pnpm/error": "3.0.1",
27
28
  "execa": "npm:safe-execa@^0.1.1",
28
29
  "render-help": "^1.0.1"
29
30
  },
@@ -33,7 +34,7 @@
33
34
  },
34
35
  "devDependencies": {
35
36
  "@pnpm/logger": "^4.0.0",
36
- "@pnpm/plugin-commands-setup": "2.0.4",
37
+ "@pnpm/plugin-commands-setup": "2.0.5",
37
38
  "@pnpm/prepare": "0.0.40"
38
39
  },
39
40
  "exports": {