1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict';
- const os = require('os');
- const macosRelease = require('macos-release');
- const winRelease = require('windows-release');
- const osName = (platform, release) => {
- if (!platform && release) {
- throw new Error('You can\'t specify a `release` without specifying `platform`');
- }
- platform = platform || os.platform();
- let id;
- if (platform === 'darwin') {
- if (!release && os.platform() === 'darwin') {
- release = os.release();
- }
- const prefix = release ? (Number(release.split('.')[0]) > 15 ? 'macOS' : 'OS X') : 'macOS';
- try {
- id = release ? macosRelease(release).name : '';
- } catch {}
- return prefix + (id ? ' ' + id : '');
- }
- if (platform === 'linux') {
- if (!release && os.platform() === 'linux') {
- release = os.release();
- }
- id = release ? release.replace(/^(\d+\.\d+).*/, '$1') : '';
- return 'Linux' + (id ? ' ' + id : '');
- }
- if (platform === 'win32') {
- if (!release && os.platform() === 'win32') {
- release = os.release();
- }
- id = release ? winRelease(release) : '';
- return 'Windows' + (id ? ' ' + id : '');
- }
- return platform;
- };
- module.exports = osName;
|