@@ -238,10 +238,10 @@ main() {
238
238
macos)
239
239
install_macos
240
240
;;
241
- ubuntu | debian | raspbian )
241
+ debian)
242
242
install_deb
243
243
;;
244
- centos | fedora | rhel | opensuse)
244
+ fedora | opensuse)
245
245
install_rpm
246
246
;;
247
247
arch)
@@ -425,14 +425,16 @@ os() {
425
425
}
426
426
427
427
# distro prints the detected operating system including linux distros.
428
+ # Also parses ID_LIKE for common distro bases.
428
429
#
429
430
# Example outputs:
430
- # - macos
431
- # - debian, ubuntu, raspbian
432
- # - centos, fedora, rhel, opensuse
433
- # - alpine
434
- # - arch
435
- # - freebsd
431
+ # - macos -> macos
432
+ # - freebsd -> freebsd
433
+ # - ubuntu, raspbian, debian ... -> debian
434
+ # - amzn, centos, rhel, fedora, ... -> fedora
435
+ # - opensuse-{leap,tumbleweed} -> opensuse
436
+ # - alpine -> alpine
437
+ # - arch -> arch
436
438
#
437
439
# Inspired by https://github.com/docker/docker-install/blob/26ff363bcf3b3f5a00498ac43694bf1c7d9ce16c/install.sh#L111-L120.
438
440
distro () {
@@ -444,12 +446,15 @@ distro() {
444
446
if [ -f /etc/os-release ]; then
445
447
(
446
448
. /etc/os-release
447
- case " $ID " in opensuse-* )
448
- # opensuse's ID's look like opensuse-leap and opensuse-tumbleweed.
449
- echo " opensuse"
450
- return
451
- ;;
452
- esac
449
+ if [ " ${ID_LIKE-} " ]; then
450
+ for id_like in $ID_LIKE ; do
451
+ case " $id_like " in debian | fedora | opensuse)
452
+ echo " $id_like "
453
+ return
454
+ ;;
455
+ esac
456
+ done
457
+ fi
453
458
454
459
echo " $ID "
455
460
)
0 commit comments