Como faço para comentar o seguinte bloco de código? [fechadas]

0

O que eu tenho:

...
    {if $dockerPipelinesEnabled}
        {call aui.buttons.button}
            {param text: getText('deployment.environment.docker.button') /}
            {param tagName: 'a' /}
            {param id: 'configureEnvironmentDocker' + $id /}
            {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentDocker.action?environmentId=' + $id ] /}
        {/call}
    {/if}

    {call aui.buttons.button}
        {param text: getText('deployment.project.environment.agents') /}
        {param tagName: 'a' /}
        {param id: 'configureEnvironmentAgents' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentAgents.action?environmentId=' + $id ] /}
    {/call}

    {call widget.override.aui.badgeButton}
        {param text: getText('environment.notifications') /}
        {param tagName: 'a' /}
        {param id: 'configureDeploymentsNotifications' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentNotifications.action?environmentId=' + $id ] /}
        {param badgeText: $notificationsNumberString /}
    {/call}
...

O que eu quero:

...
    {if $dockerPipelinesEnabled}
        {call aui.buttons.button}
            {param text: getText('deployment.environment.docker.button') /}
            {param tagName: 'a' /}
            {param id: 'configureEnvironmentDocker' + $id /}
            {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentDocker.action?environmentId=' + $id ] /}
        {/call}
    {/if}

  /**  {call aui.buttons.button}
        {param text: getText('deployment.project.environment.agents') /}
        {param tagName: 'a' /}
        {param id: 'configureEnvironmentAgents' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentAgents.action?environmentId=' + $id ] /}
    {/call} */

    {call widget.override.aui.badgeButton}
        {param text: getText('environment.notifications') /}
        {param tagName: 'a' /}
        {param id: 'configureDeploymentsNotifications' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentNotifications.action?environmentId=' + $id ] /}
        {param badgeText: $notificationsNumberString /}
    {/call}
...

Eu posso comentar as linhas exclusivas em várias declarações, no entanto, existem linhas comuns nesse bloco de código que estão presentes em outros blocos.

Os formatos aceitáveis são:

/**  {call aui.buttons.button}
        {param text: getText('deployment.project.environment.agents') /}
        {param tagName: 'a' /}
        {param id: 'configureEnvironmentAgents' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentAgents.action?environmentId=' + $id ] /}
    {/call} */

ou:

 /**  {call aui.buttons.button} */
 /**    {param text: getText('deployment.project.environment.agents') /} */
 /**       {param tagName: 'a' /} */
 /**       {param id: 'configureEnvironmentAgents' + $id /} */
 /**       {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentAgents.action?environmentId=' + $id ] /}
 /**   {/call} */

Editar

Eu estava tentando resolver o problema com sed e awk , mas parece ser bem trivial com grep :

grep --invert-match "$(grep -B 1 -A 4 .*deployment.project.environment.agents <path-to-file>

Parece que grep não trata a correspondência como um bloco, mas sim que cada linha é removida, o que quebra o resultado.

Atualizar

O arquivo completo é aqui (o snippet de interesse está localizado na parte inferior)

Nesse arquivo, desejo comentar a seção acima (mostrada em formatos aceitos ).

Tenha em atenção que {call aui.buttons.button} aparece em vários locais, pelo que, por si só, não é suficiente um marcador. Seria aceitável excluir o bloco de código também.

    
por kaizenCoder 13.11.2018 / 00:26

1 resposta

0

Experimente sed :

sed '/{call/ {:L; N; /{\/call/!bL; /deployment.project/ {s/^/\/**/; s/$/*\//}} ' file
    {if $dockerPipelinesEnabled}
        {call aui.buttons.button}
            {param text: getText('deployment.environment.docker.button') /}
            {param tagName: 'a' /}
            {param id: 'configureEnvironmentDocker' + $id /}
            {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentDocker.action?environmentId=' + $id ] /}
        {/call}
    {/if}

/**    {call aui.buttons.button}
        {param text: getText('deployment.project.environment.agents') /}
        {param tagName: 'a' /}
        {param id: 'configureEnvironmentAgents' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentAgents.action?environmentId=' + $id ] /}
    {/call}*/

    {call widget.override.aui.badgeButton}
        {param text: getText('environment.notifications') /}
        {param tagName: 'a' /}
        {param id: 'configureDeploymentsNotifications' + $id /}
        {param extraAttributes: [ 'href': contextPath() + '/deploy/config/configureEnvironmentNotifications.action?environmentId=' + $id ] /}
        {param badgeText: $notificationsNumberString /}
    {/call}

Em cada {call} encontrado, as linhas são reunidas no espaço padrão até que {/call} seja encontrado (veja a advertência de mosvy, no entanto). Então, se o padrão de destino está no espaço padrão, adicione /** no início e */ no final da linha.

    
por 13.11.2018 / 12:22

Tags