sys_create_symlink Subroutine

public subroutine sys_create_symlink(target, link_name, success)

Create a symbolic link

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: target
character(len=*), intent(in) :: link_name
logical, intent(out) :: success

Source Code

    subroutine sys_create_symlink(target, link_name, success)
        character(len=*), intent(in) :: target, link_name
        logical, intent(out) :: success
        character(len=512) :: command
        integer :: exitstat

        if (get_os_type() == OS_WINDOWS) then
            ! Windows requires admin rights for symlinks, use junction for directories
            command = 'mklink "'//trim(escape_shell_arg(link_name))//'" "'//trim(escape_shell_arg(target))//'" 2>nul'
        else
            command = 'ln -s "'//trim(escape_shell_arg(target))//'" "'//trim(escape_shell_arg(link_name))//'" 2>/dev/null'
        end if

        call execute_command_line(command, exitstat=exitstat)
        success = (exitstat == 0)
    end subroutine sys_create_symlink