macros/get_directory_pattern.sql (30 lines of code) (raw):

-- these macros will read a user’s home environment and detect whether a computer’s operating system is Windows based or Mac/Linux, and display the right directory pattern. {% macro is_os_mac_or_linux() %} {% for val in graph.nodes.values() %} {{ return("\\" not in val.get("original_file_path","")) }} {% endfor %} {{ return(true) }} {% endmacro %} {% macro get_directory_pattern() %} {% if execute %} {%- set on_mac_or_linux = dbt_project_evaluator.is_os_mac_or_linux() -%} {%- if on_mac_or_linux -%} {{ return("/") }} {% else %} {{ return("\\\\") }} {% endif %} {% endif %} {% endmacro %} {% macro get_regexp_directory_pattern() %} {% set regexp_escaped = get_directory_pattern() | replace("\\\\", "\\\\\\\\") %} {% do return(regexp_escaped) %} {% endmacro %} {% macro get_dbtreplace_directory_pattern() %} {% if execute %} {%- set on_mac_or_linux = dbt_project_evaluator.is_os_mac_or_linux() -%} {%- if on_mac_or_linux -%} {{ dbt.replace("file_path", "regexp_replace(file_path,'.*/','')", "''") }} {% else %} {{ dbt.replace("file_path", "regexp_replace(file_path,'.*\\\\\\\\','')", "''") }} {% endif %} {% endif %} {% endmacro %}