Get Linux release info (distribution name, version, arch, release, etc.) from 'os-release' file and from native os module. On Windows and Darwin it only returns common node os module info (platform, hostname, release and arch)
npm install linux-release-info
npm install --save linux-release-info
`
or
`
yarn add linux-release-info
`
Usage
Basic usage (async)
`
const {releaseInfo} = require('linux-release-info');
releaseInfo()
.then(result => {
console.log(You are using ${result.pretty_name} on a ${result.arch} machine); // Distro name (only on linux) and arch info
})
.catch(err => console.error(Error reading OS release info: ${err}))
`
Outputs:
`
> You are using Ubuntu 17.10 on a x64 machine
`
Synchronous read
`
const releaseInfo = require('linux-release-info');
try {
const infoSyncData = releaseInfo({mode: 'sync'});
console.log(You are using ${infoSyncData.pretty_name} on a ${infoSyncData.arch} machine)
} catch (err) {
console.error(Error reading OS release info: ${err});
}
`
Custom os_release file
`
const infoSyncData = releaseInfo({mode: 'sync', custom_file: '/home/user/os_release_sample'), debug: true});
`
Options
Property | Type | Default | Description
---------------- | -------- | ---------- | ----------------------
mode | string | async | 'sync' or 'async' mode
custom_file | string | null/none | custom complete filepath with os info. If not provided the system will search on the /etc/os-release and /usr/lib/os-release files
debug | boolean | false | shows console debug messages
$3
Linux
`
{ type: 'Linux',
platform: 'linux',
hostname: 'VirtualBoxLINUX',
arch: 'x64',
release: '4.13.0-32-generic',
name: 'Ubuntu',
version: '17.10 (Artful Aardvark)',
id: 'ubuntu',
id_like: 'debian',
pretty_name: 'Ubuntu 17.10',
version_id: '17.10',
home_url: 'https://www.ubuntu.com/',
support_url: 'https://help.ubuntu.com/',
bug_report_url: 'https://bugs.launchpad.net/ubuntu/',
privacy_policy_url: 'https://www.ubuntu.com/legal/terms-and-policies/privacy-policy',
version_codename: 'artful',
ubuntu_codename: 'artful' }
`
Linux (Raspberry Pi)
`
{ type: 'Linux',
platform: 'linux',
hostname: 'raspberrypi',
arch: 'arm',
release: '4.19.118-v7+',
pretty_name: 'Raspbian GNU/Linux 10 (buster)',
name: 'Raspbian GNU/Linux',
version_id: '10',
version: '10 (buster)',
version_codename: 'buster',
id: 'raspbian',
id_like: 'debian',
home_url: 'http://www.raspbian.org/',
support_url: 'http://www.raspbian.org/RaspbianForums',
bug_report_url: 'http://www.raspbian.org/RaspbianBugs' }
`
Linux (Fedora)
`
{ type: 'Linux',
platform: 'linux',
hostname: 'localhost-live',
arch: 'x64',
release: '4.13.9-300.fc27.x86_64',
name: 'Fedora',
version: '27 (Workstation Edition)',
id: 'fedora',
version_id: '27',
pretty_name: 'Fedora 27 (Workstation Edition)',
ansi_color: '0;34',
cpe_name: 'cpe:/o:fedoraproject:fedora:27',
home_url: 'https://fedoraproject.org/',
support_url: 'https://fedoraproject.org/wiki/Communicating_and_getting_help',
bug_report_url: 'https://bugzilla.redhat.com/',
redhat_bugzilla_product: 'Fedora',
redhat_bugzilla_product_version: '27',
redhat_support_product: 'Fedora',
redhat_support_product_version: '27',
privacy_policy_url: 'https://fedoraproject.org/wiki/Legal:PrivacyPolicy',
variant: 'Workstation Edition',
variant_id: 'workstation' }
`
Windows
`
{ type: 'Windows_NT',
platform: 'win32',
hostname: 'MYPC',
arch: 'x64',
release: '10.0.16299' }
`
macOS
`
{ type: 'Darwin',
platform: 'darwin',
hostname: 'Macbook-Air.home',
arch: 'x64',
release: '16.0.0' }
``