Merge pull request #12173 from strapi/fix/non-shell-crash

Fixed non-shell host crash on startup
This commit is contained in:
Alexandre BODIN 2022-01-19 10:55:39 +01:00 committed by GitHub
commit 1f3e13dd4c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 7 deletions

View File

@ -3,10 +3,10 @@
const os = require('os'); const os = require('os');
const _ = require('lodash'); const _ = require('lodash');
const isDocker = require('is-docker'); const isDocker = require('is-docker');
const { machineIdSync } = require('node-machine-id');
const fetch = require('node-fetch'); const fetch = require('node-fetch');
const ciEnv = require('ci-info'); const ciEnv = require('ci-info');
const ee = require('../../utils/ee'); const ee = require('../../utils/ee');
const machineID = require('../../utils/machine-id');
const stringifyDeep = require('./stringify-deep'); const stringifyDeep = require('./stringify-deep');
const defaultQueryOpts = { const defaultQueryOpts = {
@ -33,7 +33,7 @@ const addPackageJsonStrapiMetadata = (metadata, strapi) => {
*/ */
module.exports = strapi => { module.exports = strapi => {
const { uuid } = strapi.config; const { uuid } = strapi.config;
const deviceId = machineIdSync(); const deviceId = machineID();
const isEE = strapi.EE === true && ee.isEE === true; const isEE = strapi.EE === true && ee.isEE === true;
const anonymous_metadata = { const anonymous_metadata = {

View File

@ -0,0 +1,14 @@
'use strict';
const { machineIdSync } = require('node-machine-id');
const uuid = require('uuid');
module.exports = () => {
try {
const deviceId = machineIdSync();
return deviceId;
} catch (error) {
const deviceId = uuid();
return deviceId;
}
};

View File

@ -5,7 +5,7 @@
*/ */
const fetch = require('node-fetch'); const fetch = require('node-fetch');
const { machineIdSync } = require('node-machine-id'); const machineID = require('./machine-id');
/* /*
* No need to worry about this file, we only retrieve anonymous data here. * No need to worry about this file, we only retrieve anonymous data here.
@ -21,7 +21,7 @@ try {
method: 'POST', method: 'POST',
body: JSON.stringify({ body: JSON.stringify({
event: 'didInstallStrapi', event: 'didInstallStrapi',
deviceId: machineIdSync(), deviceId: machineID(),
}), }),
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
}).catch(() => {}); }).catch(() => {});

View File

@ -126,7 +126,8 @@
"qs": "6.10.1", "qs": "6.10.1",
"resolve-cwd": "3.0.0", "resolve-cwd": "3.0.0",
"semver": "7.3.5", "semver": "7.3.5",
"statuses": "2.0.1" "statuses": "2.0.1",
"uuid": "^3.3.2"
}, },
"devDependencies": { "devDependencies": {
"supertest": "^6.1.6" "supertest": "^6.1.6"

View File

@ -3,7 +3,6 @@
const { join, resolve, basename } = require('path'); const { join, resolve, basename } = require('path');
const os = require('os'); const os = require('os');
const crypto = require('crypto'); const crypto = require('crypto');
const { machineIdSync } = require('node-machine-id');
const uuid = require('uuid/v4'); const uuid = require('uuid/v4');
const sentry = require('@sentry/node'); const sentry = require('@sentry/node');
// FIXME // FIXME
@ -14,6 +13,7 @@ const { trackError, captureException } = require('./utils/usage');
const parseDatabaseArguments = require('./utils/parse-db-arguments'); const parseDatabaseArguments = require('./utils/parse-db-arguments');
const generateNew = require('./generate-new'); const generateNew = require('./generate-new');
const checkInstallPath = require('./utils/check-install-path'); const checkInstallPath = require('./utils/check-install-path');
const machineID = require('./utils/machine-id');
sentry.init({ sentry.init({
dsn: 'https://841d2b2c9b4d4b43a4cde92794cb705a@sentry.io/1762059', dsn: 'https://841d2b2c9b4d4b43a4cde92794cb705a@sentry.io/1762059',
@ -44,7 +44,7 @@ const generateNewApp = (projectDirectory, cliArguments) => {
}, },
uuid: (process.env.STRAPI_UUID_PREFIX || '') + uuid(), uuid: (process.env.STRAPI_UUID_PREFIX || '') + uuid(),
docker: process.env.DOCKER === 'true', docker: process.env.DOCKER === 'true',
deviceId: machineIdSync(), deviceId: machineID(),
tmpPath, tmpPath,
// use yarn if available and --use-npm isn't true // use yarn if available and --use-npm isn't true
useYarn: !useNpm && hasYarn(), useYarn: !useNpm && hasYarn(),

View File

@ -0,0 +1,14 @@
'use strict';
const { machineIdSync } = require('node-machine-id');
const uuid = require('uuid');
module.exports = () => {
try {
const deviceId = machineIdSync();
return deviceId;
} catch (error) {
const deviceId = uuid();
return deviceId;
}
};