Make symlinks smarter.
This commit is contained in:
parent
63144032c1
commit
49a530ba57
@ -53,12 +53,23 @@ install(TARGETS dropshell
|
|||||||
|
|
||||||
# Create symbolic link 'ds' pointing to 'dropshell'
|
# Create symbolic link 'ds' pointing to 'dropshell'
|
||||||
install(CODE "
|
install(CODE "
|
||||||
message(STATUS \"Creating symlink: ds -> dropshell\")
|
message(STATUS \"Checking if 'ds' command already exists...\")
|
||||||
|
execute_process(
|
||||||
|
COMMAND which ds
|
||||||
|
RESULT_VARIABLE DS_NOT_EXISTS
|
||||||
|
OUTPUT_QUIET
|
||||||
|
ERROR_QUIET
|
||||||
|
)
|
||||||
|
if(DS_NOT_EXISTS)
|
||||||
|
message(STATUS \"Command 'ds' does not exist. Creating symlink.\")
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
\${CMAKE_INSTALL_PREFIX}/bin/dropshell
|
\${CMAKE_INSTALL_PREFIX}/bin/dropshell
|
||||||
\${CMAKE_INSTALL_PREFIX}/bin/ds
|
\${CMAKE_INSTALL_PREFIX}/bin/ds
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS \"Command 'ds' already exists. Skipping symlink creation.\")
|
||||||
|
endif()
|
||||||
")
|
")
|
||||||
|
|
||||||
# Install completion script
|
# Install completion script
|
||||||
@ -69,12 +80,43 @@ install(FILES src/dropshell-completion.bash
|
|||||||
|
|
||||||
# Create a symlink for the completion script to work with 'ds' command
|
# Create a symlink for the completion script to work with 'ds' command
|
||||||
install(CODE "
|
install(CODE "
|
||||||
message(STATUS \"Creating completion script symlink for 'ds'\")
|
# First check if 'ds' command exists after our installation
|
||||||
|
execute_process(
|
||||||
|
COMMAND which ds
|
||||||
|
RESULT_VARIABLE DS_NOT_EXISTS
|
||||||
|
OUTPUT_VARIABLE DS_PATH
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
# Only proceed if 'ds' exists
|
||||||
|
if(NOT DS_NOT_EXISTS)
|
||||||
|
# Check if 'ds' is a symlink pointing to dropshell
|
||||||
|
execute_process(
|
||||||
|
COMMAND readlink -f \${DS_PATH}
|
||||||
|
RESULT_VARIABLE READLINK_FAILED
|
||||||
|
OUTPUT_VARIABLE REAL_PATH
|
||||||
|
ERROR_QUIET
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
# Get the path to our dropshell binary
|
||||||
|
set(DROPSHELL_PATH \${CMAKE_INSTALL_PREFIX}/bin/dropshell)
|
||||||
|
|
||||||
|
# Check if the real path is our dropshell binary
|
||||||
|
if(NOT READLINK_FAILED AND \"\${REAL_PATH}\" STREQUAL \"\${DROPSHELL_PATH}\")
|
||||||
|
message(STATUS \"Command 'ds' exists and points to dropshell. Creating completion script symlink.\")
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
/etc/bash_completion.d/dropshell
|
/etc/bash_completion.d/dropshell
|
||||||
/etc/bash_completion.d/ds
|
/etc/bash_completion.d/ds
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
message(STATUS \"Command 'ds' exists but doesn't point to dropshell. Skipping completion symlink.\")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS \"Command 'ds' not found. Skipping completion symlink.\")
|
||||||
|
endif()
|
||||||
")
|
")
|
||||||
|
|
||||||
# Create pre-install script to clean old templates
|
# Create pre-install script to clean old templates
|
||||||
|
Loading…
x
Reference in New Issue
Block a user