On Wednesday, 13 December 2017 16.39.30 CET Justin Seiser wrote:
>     GROOVY_ALT_SLAVES=""
>     for f in $(ls /opt/groovy-${GROOVY_VERSION}/bin | fgrep -v .bat | grep 
> -v '^groovy$'); do
>         GROOVY_ALT_SLAVES=" ${GROOVY_ALT_SLAVES}  --slave /usr/bin/${f} 
> ${f} /opt/groovy-${GROOVY_VERSION}/bin/${f}"
>     done
> 
>     update-alternatives --install /usr/bin/groovy groovy 
> /opt/groovy-${GROOVY_VERSION}/bin/groovy 2000 ${GROOVY_ALT_SLAVES}
>     update-alternatives --set groovy 
> /opt/groovy-${GROOVY_VERSION}/bin/groovy
> 
> I cant really wrap my head around the best way to dupe this, that isnt just 
> running the shell module.  Once I resigned myself to using the shell 
> module, I then read that doing something like
> 
> 
>  - shell: GROOVY_ALT_SLAVES=" ${GROOVY_ALT_SLAVES}  --slave /usr/bin/{{ item 
> }} {{ item }} /opt/groovy-{{ groovy_version }}/bin/{{ item }}"
>     with_items: ['file1', 'file2']
> 
> 
> 
> 
> Wouldn't work, since each shell run is a separate connection, so Im not 
> really building up a long string to then append to the update-alternatives 
> command.  There is also the fact I have to manually specify a list of 
> items, since I cant use glob because i need to match files that do not 
> match a certain set of expressions.
> 
> 
> Im sure Im missing something obvious, but I haven't made any progress on 
> this one and any help would be great.

You could do something like this, not tested so it might have some syntax and 
logical errors.

- shell: ls /opt/groovy-${GROOVY_VERSION}/bin | fgrep -v .bat | grep -v 
'^groovy$'
  register: r

- set_fact:
    GROOVY_ALT_SLAVES: '{% for item in r.stdout_lines %} --slave  /usr/bin/{{ 
item }} {{ item }} /opt/groovy-{{ groovy_version }}/bin/{{ item }} {%- endfor 
%}'

- command: update-alternatives --install /usr/bin/groovy groovy /opt/groovy-{{ 
groovy_version }}/bin/groovy 2000 {{ GROOVY_ALT_SLAVES }}

- command: update-alternatives --set groovy /opt/groovy-{{ groovy_version 
}/bin/groovy


-- 
Kai Stian Olstad

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/8197869.RLMARL6R0F%40x1.
For more options, visit https://groups.google.com/d/optout.

Reply via email to