private static getRuntimeIdHelper()

in src/models/platform.ts [335:394]


	private static getRuntimeIdHelper(distributionName: string, distributionVersion: string): Runtime {
		switch (distributionName) {
			case 'arch':
			case 'antergos':
				// NOTE: currently Arch Linux seems to be compatible enough with Ubuntu 16 that this works,
				// though in the future this may need to change as Arch follows a rolling release model.
				return Runtime.Ubuntu_16;
			case 'ubuntu':
				if (distributionVersion.startsWith('14')) {
					// This also works for Linux Mint
					return Runtime.Ubuntu_14;
				} else if (distributionVersion.startsWith('16')) {
					return Runtime.Ubuntu_16;
				}

				break;
			case 'elementary':
			case 'elementary OS':
				if (distributionVersion.startsWith('0.3')) {
					// Elementary OS 0.3 Freya is binary compatible with Ubuntu 14.04
					return Runtime.Ubuntu_14;
				} else if (distributionVersion.startsWith('0.4')) {
					// Elementary OS 0.4 Loki is binary compatible with Ubuntu 16.04
					return Runtime.Ubuntu_16;
				}

				break;
			case 'linuxmint':
				if (distributionVersion.startsWith('18') || distributionVersion.startsWith('19')) {
					// Linux Mint 18 is binary compatible with Ubuntu 16.04
					return Runtime.Ubuntu_16;
				}

				break;
			case 'centos':
			case 'ol':
				// Oracle Linux is binary compatible with CentOS
				return Runtime.CentOS_7;
			case 'fedora':
				return Runtime.Fedora_23;
			case 'opensuse':
				return Runtime.OpenSUSE_13_2;
			case 'sles':
				return Runtime.SLES_12_2;
			case 'rhel':
				return Runtime.RHEL_7;
			case 'debian':
			case 'deepin':
				return Runtime.Debian_8;
			case 'galliumos':
				if (distributionVersion.startsWith('2.0')) {
					return Runtime.Ubuntu_16;
				}
				break;
			default:
				return Runtime.Ubuntu_16;
		}

		return Runtime.Ubuntu_16;
	}