Skip to content

Commit f967630

Browse files
committed
refactor: Adapt pipenv to modern logs
1 parent 256a5aa commit f967630

File tree

2 files changed

+36
-21
lines changed

2 files changed

+36
-21
lines changed

lib/pipenv.js

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,31 +14,45 @@ function pipfileToRequirements() {
1414
return;
1515
}
1616

17-
this.serverless.cli.log('Generating requirements.txt from Pipfile...');
17+
let generateRequirementsProgress;
18+
if (this.progress) {
19+
generateRequirementsProgress = this.progress.get(
20+
'python-generate-requirements-pipfile'
21+
);
22+
generateRequirementsProgress.update('Generating requirements.txt from Pipfile', { isMainEvent: true });
23+
} else {
24+
this.serverless.cli.log(
25+
'Generating requirements.txt from Pipfile...'
26+
);
27+
}
1828

19-
const res = spawnSync(
20-
'pipenv',
21-
['lock', '--requirements', '--keep-outdated'],
22-
{
23-
cwd: this.servicePath,
29+
try {
30+
const res = spawnSync(
31+
'pipenv',
32+
['lock', '--requirements', '--keep-outdated'],
33+
{
34+
cwd: this.servicePath,
35+
}
36+
);
37+
if (res.error) {
38+
if (res.error.code === 'ENOENT') {
39+
throw new Error(
40+
`pipenv not found! Install it with 'pip install pipenv'.`
41+
);
42+
}
43+
throw new Error(res.error);
2444
}
25-
);
26-
if (res.error) {
27-
if (res.error.code === 'ENOENT') {
28-
throw new Error(
29-
`pipenv not found! Install it with 'pip install pipenv'.`
30-
);
45+
if (res.status !== 0) {
46+
throw new Error(res.stderr);
3147
}
32-
throw new Error(res.error);
33-
}
34-
if (res.status !== 0) {
35-
throw new Error(res.stderr);
48+
fse.ensureDirSync(path.join(this.servicePath, '.serverless'));
49+
fse.writeFileSync(
50+
path.join(this.servicePath, '.serverless/requirements.txt'),
51+
removeEditableFlagFromRequirementsString(res.stdout)
52+
);
53+
} finally {
54+
generateRequirementsProgress && generateRequirementsProgress.remove();
3655
}
37-
fse.ensureDirSync(path.join(this.servicePath, '.serverless'));
38-
fse.writeFileSync(
39-
path.join(this.servicePath, '.serverless/requirements.txt'),
40-
removeEditableFlagFromRequirementsString(res.stdout)
41-
);
4256
}
4357

4458
/**

lib/poetry.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ function pyprojectTomlToRequirements() {
1717
generateRequirementsProgress = this.progress.get(
1818
'python-generate-requirements-toml'
1919
);
20+
generateRequirementsProgress.update('Generating requirements.txt from "pyproject.toml"', { isMainEvent: true });
2021
} else {
2122
this.serverless.cli.log(
2223
'Generating requirements.txt from pyproject.toml...'

0 commit comments

Comments
 (0)