refactor: simplify linux os-release parsing
This commit is contained in:
@ -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}")
|
||||||
|
|||||||
Reference in New Issue
Block a user