refactor: simplify linux os-release parsing

This commit is contained in:
sithlord48
2024-11-21 20:16:36 -05:00
committed by Nick Bolton
parent 882b71ea84
commit 14f66e2dee

View File

@ -5,37 +5,31 @@
macro(configure_linux_package_name) macro(configure_linux_package_name)
# Get Distro name information # Get Distro name information
execute_process( if(EXISTS "/etc/os-release")
COMMAND bash "-c" "cat /etc/os-release | grep ^ID= | sed 's/ID=//g'" FILE(STRINGS "/etc/os-release" RELEASE_FILE_CONTENTS)
OUTPUT_VARIABLE _DISTRO_NAME else()
OUTPUT_STRIP_TRAILING_WHITESPACE) message(FATAL_ERROR "Unable to read file /etc/os-release")
string(REPLACE "\"" "" DISTRO_NAME "${_DISTRO_NAME}") endif()
message(STATUS "Distro Name: ${DISTRO_NAME}")
execute_process( foreach(LINE IN LISTS RELEASE_FILE_CONTENTS)
COMMAND bash "-c" if( "${LINE}" MATCHES "^ID=")
"cat /etc/os-release | grep ^ID_LIKE= | sed 's/ID_LIKE=//g'" string(REGEX REPLACE "^ID=" "" DISTRO_NAME ${LINE})
OUTPUT_VARIABLE _DISTRO_LIKE string(REGEX REPLACE "\"" "" DISTRO_NAME ${DISTRO_NAME})
OUTPUT_STRIP_TRAILING_WHITESPACE) message(DEBUG "Distro Name :${DISTRO_NAME}")
string(REPLACE "\"" "" DISTRO_LIKE "${_DISTRO_LIKE}") elseif( "${LINE}" MATCHES "^ID_LIKE=")
message(STATUS "Distro Like: ${DISTRO_LIKE}") string(REGEX REPLACE "^ID_LIKE=" "" DISTRO_LIKE "${LINE}")
string(REGEX REPLACE "\"" "" DISTRO_LIKE ${DISTRO_LIKE})
execute_process( message(DEBUG "Distro Like :${DISTRO_LIKE}")
COMMAND elseif( "${LINE}" MATCHES "^VERSION_CODENAME=")
bash "-c" string(REGEX REPLACE "^VERSION_CODENAME=" "" DISTRO_CODENAME "${LINE}")
"cat /etc/os-release | grep ^VERSION_CODENAME= | sed 's/VERSION_CODENAME=//g'" string(REGEX REPLACE "\"" "" DISTRO_CODENAME "${DISTRO_CODENAME}")
OUTPUT_VARIABLE _DISTRO_CODENAME message(DEBUG "Distro Codename:${DISTRO_CODENAME}")
OUTPUT_STRIP_TRAILING_WHITESPACE) elseif( "${LINE}" MATCHES "^VERSION_ID=")
string(REPLACE "\"" "" DISTRO_CODENAME "${_DISTRO_CODENAME}") string(REGEX REPLACE "^VERSION_ID=" "" DISTRO_VERSION_ID "${LINE}")
message(STATUS "Distro Codename: ${DISTRO_CODENAME}") string(REGEX REPLACE "\"" "" DISTRO_VERSION_ID "${DISTRO_VERSION_ID}")
message(DEBUG "Distro VersionID:${DISTRO_VERSION_ID}")
execute_process( endif()
COMMAND bash "-c" endforeach()
"cat /etc/os-release | grep ^VERSION_ID= | sed 's/VERSION_ID=//g'"
OUTPUT_VARIABLE _DISTRO_VERSION_ID
OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "\"" "" DISTRO_VERSION_ID "${_DISTRO_VERSION_ID}")
message(STATUS "Distro ID: ${DISTRO_VERSION_ID}")
# Check if Debian-link # Check if Debian-link
string(REGEX MATCH debian|buntu DEBTYPE "${DISTRO_LIKE}") string(REGEX MATCH debian|buntu DEBTYPE "${DISTRO_LIKE}")