diff --git a/tasks/main.yml b/tasks/main.yml index 2456f3a..234f5cb 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -44,7 +44,34 @@ msg: > {{ wol_check.results | map(attribute='stdout_lines') | list }} -- name: Parse WOL support and state (guaranteed match) +# - name: Parse WOL support and state (guaranteed match) +# ansible.builtin.set_fact: +# wol_info: >- +# {{ +# wol_info | default({}) | +# combine({ +# item.item: { +# 'supports_magic': +# ( +# item.stdout_lines +# | select('search', 'Supports Wake-on:') +# | join('') +# ).find('g') != -1, +# 'current_state': +# ( +# item.stdout_lines +# | map('trim') +# | select('match', '^Wake-on:') +# | map('regex_replace', 'Wake-on:\\s*', '') +# | first +# | default('unknown') +# ) +# } +# }) +# }} +# loop: "{{ wol_check.results }}" + +- name: Parse WOL support and state (final) ansible.builtin.set_fact: wol_info: >- {{ @@ -53,16 +80,15 @@ item.item: { 'supports_magic': ( - item.stdout_lines - | select('search', 'Supports Wake-on:') - | join('') + item.stdout + | regex_findall('Supports Wake-on:\\s*([a-z]+)') + | first + | default('') ).find('g') != -1, 'current_state': ( - item.stdout_lines - | map('trim') - | select('match', '^Wake-on:') - | map('regex_replace', 'Wake-on:\\s*', '') + item.stdout + | regex_findall('\\n\\s*Wake-on:\\s*([a-z]+)') | first | default('unknown') )