Changes
Translation components API.
See the Weblate's Web API documentation for detailed description of the API.
GET /api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=24
https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=25", "previous": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/changes/?format=api&page=23", "results": [ { "unit": "https://translate-dev.freebsd.org/api/units/611781/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:12:27.486290Z", "action": 5, "target": "Mais tarde, houve uma tentativa de dividir algumas partes do [.filename]#/etc/rc# para iniciar os subsistemas mais importantes separadamente. O exemplo notório foi o [.filename]#/etc/netstart# para iniciar a rede. Isso permitiu o acesso à rede no modo de usuário único, mas não se integrou bem ao processo de inicialização automática porque partes de seu código precisavam intercalar com ações essencialmente não relacionadas à rede. Foi por isso que o [.filename]#/etc/netstart# se transformou em [.filename]#/etc/rc.network#. Este último não era mais um script comum; era composto de grandes funções man:sh[1] complexas chamadas pelo [.filename]#/etc/rc# em diferentes estágios da inicialização do sistema. No entanto, à medida que as tarefas de inicialização ficaram mais diversas e sofisticadas, a abordagem \"quase modular\" tornou-se ainda mais pesada do que o monolítico [.filename]#/etc/rc# tinha sido.", "id": 523538, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523538/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611782/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:14:18.840289Z", "action": 2, "target": "Sem um framework limpo e bem projetado, os scripts de inicialização tiveram que se dobrar para atender às necessidades dos sistemas operacionais baseados em BSD que estavam em rápida evolução. Tornou-se evidente, finalmente, que mais etapas eram necessárias para se chegar a um sistema [.filename]#rc# refinado, granular e extensível. Assim nasceu o [.filename]#rc.d# do BSD. Seus pais reconhecidos foram Luke Mewburn e a comunidade NetBSD. Mais tarde, foi importado para o FreeBSD. Seu nome se refere ao local dos scripts do sistema para serviços individuais, que está em [.filename]#/etc/rc.d#. Em breve, aprenderemos mais sobre os componentes do sistema [.filename]#rc.d# e veremos como os scripts individuais são invocados.", "id": 523539, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523539/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611783/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:23:42.119779Z", "action": 5, "target": "As ideias básicas por trás do [.filename]#rc.d# do BSD são _modularidade fina_ e __reutilização de código__. _Modularidade fina_ significa que cada \"serviço\" básico, como um daemon do sistema ou uma tarefa de inicialização primitiva, possui seu próprio script man:sh[1] capaz de iniciar o serviço, pará-lo, recarregá-lo e verificar seu status. Uma ação específica é escolhida pelo argumento da linha de comando do script. O script [.filename]#/etc/rc# ainda conduz a inicialização do sistema, mas agora ele apenas invoca os scripts menores um por um com o argumento `start`. Também é fácil realizar tarefas de desligamento executando o mesmo conjunto de scripts com o argumento `stop`, que é feito por [.filename]#/etc/rc.shutdown#. Observe como isso segue de perto a maneira Unix de ter um conjunto de ferramentas especializadas pequenas, cada uma cumprindo sua tarefa da melhor maneira possível. _Reutilização de código_ significa que operações comuns são implementadas como funções man:sh[1] e coletadas em [.filename]#/etc/rc.subr#. Agora, um script típico pode ser composto apenas de algumas linhas de código man:sh[1]. Finalmente, uma parte importante do framework [.filename]#rc.d# é o man:rcorder[8], que ajuda o [.filename]#/etc/rc# a executar os pequenos scripts de maneira ordenada com respeito às dependências entre eles. Isso também pode ajudar o [.filename]#/etc/rc.shutdown#, porque a ordem apropriada para a sequência de desligamento é oposta à de inicialização.", "id": 523540, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523540/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611786/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:35:22.564764Z", "action": 2, "target": "Este artigo foca no ramo do FreeBSD do [.filename]#rc.d#. No entanto, ele pode ser útil também para desenvolvedores do NetBSD, pois os dois ramos do [.filename]#rc.d# não apenas compartilham o mesmo design, mas também permanecem similares em seus aspectos visíveis aos autores de scripts.", "id": 523543, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523543/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381690/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:37:48.347076Z", "action": 37, "target": "#!/bin/sh <.>\n", "id": 523545, "action_name": "Marked for edit", "url": "https://translate-dev.freebsd.org/api/changes/523545/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381692/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:37:53.337945Z", "action": 5, "target": ". /etc/rc.subr <.>\n", "id": 523546, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523546/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381690/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:38:00.120700Z", "action": 2, "target": "#!/bin/sh <.>\n", "id": 523547, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523547/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381694/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:38:08.883499Z", "action": 5, "target": "name=\"dummy\" <.>\nstart_cmd=\"${name}_start\" <.>\nstop_cmd=\":\" <.>\n", "id": 523548, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523548/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381696/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:38:13.722190Z", "action": 5, "target": "dummy_start() <.>\n{\n\techo \"Nothing started.\"\n}\n", "id": 523549, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523549/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381698/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:38:24.415999Z", "action": 5, "target": "load_rc_config $name <.>\nrun_rc_command \"$1\" <.>\n", "id": 523550, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523550/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381700/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:39:57.516860Z", "action": 2, "target": "Os pontos a serem observados são:", "id": 523551, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523551/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611788/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:42:54.839315Z", "action": 5, "target": "➊ Um script interpretado deve começar com a linha mágica \"shebang\". Essa linha especifica o programa interpretador para o script. Devido à linha shebang, o script pode ser invocado exatamente como um programa binário, desde que tenha o bit de execução definido. (Veja man:chmod[1].) Por exemplo, um administrador do sistema pode executar nosso script manualmente, a partir da linha de comando:", "id": 523552, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523552/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381704/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:42:59.111440Z", "action": 5, "target": "# /etc/rc.d/dummy start\n", "id": 523553, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523553/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381708/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:46:58.536064Z", "action": 5, "target": "Se você gostaria de aprender os detalhes de por que os scripts [.filename]#rc.d# devem ser escritos na linguagem man:sh[1], veja como o [.filename]#/etc/rc# os invoca por meio de `run_rc_script` e, em seguida, estude a implementação de `run_rc_script` em [.filename]#/etc/rc.subr#.", "id": 523555, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523555/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611790/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:52:35.378694Z", "action": 5, "target": "➋ Em [.filename]#/etc/rc.subr#, uma série de funções man:sh[1] estão definidas para serem utilizadas por um script [.filename]#rc.d#. As funções estão documentadas em man:rc.subr[8]. Embora seja teoricamente possível escrever um script [.filename]#rc.d# sem nunca usar o man:rc.subr[8], suas funções provam ser extremamente úteis e tornam o trabalho uma ordem de magnitude mais fácil. Portanto, não é surpresa que todo mundo recorra ao man:rc.subr[8] em scripts [.filename]#rc.d#. Não seremos uma exceção.", "id": 523556, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523556/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611791/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:57:46.404686Z", "action": 5, "target": "Um script [.filename]#rc.d# deve fazer o \"source\" do [.filename]#/etc/rc.subr# (inclua-o usando \"`.`\") _antes_ de chamar as funções man:rc.subr[8] para que o man:sh[1] tenha a oportunidade de aprender as funções. O estilo preferido é incluir o [.filename]#/etc/rc.subr# antes de tudo.", "id": 523557, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523557/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381714/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:58:20.262990Z", "action": 26, "target": "Algumas funções úteis relacionadas a rede são fornecidas por outro arquivo include, o <filename>/etc/network.subr</filename>.", "id": 523558, "action_name": "Suggestion removed", "url": "https://translate-dev.freebsd.org/api/changes/523558/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381714/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:58:27.681868Z", "action": 2, "target": "Algumas funções úteis relacionadas à rede são fornecidas por outro arquivo de inclusão, o [.filename]#/etc/network.subr#.", "id": 523559, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523559/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611792/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T22:59:39.988160Z", "action": 5, "target": "➌ A variável obrigatória `name` especifica o nome do nosso script. Ela é exigida pelo man:rc.subr[8]. Isso significa que cada script [.filename]#rc.d# _deve_ definir `name` antes de chamar funções do man:rc.subr[8].", "id": 523560, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523560/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611794/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:04:45.167148Z", "action": 5, "target": "O estilo atual de escrita de scripts [.filename]#rc.d# é envolver os valores atribuídos às variáveis em aspas duplas. Tenha em mente que isso é apenas uma questão de estilo que nem sempre é aplicável. Você pode seguramente omitir as aspas ao redor de palavras simples sem metacaracteres man:sh[1], enquanto em certos casos você precisará de aspas simples para evitar qualquer interpretação do valor por man:sh[1]. Um programador deve ser capaz de distinguir a sintaxe da linguagem das convenções de estilo e usá-las sabiamente.", "id": 523562, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523562/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611795/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:09:11.425178Z", "action": 5, "target": "Cada script [.filename]#rc.d# fornece manipuladores, ou métodos, para o man:rc.subr[8] invocar. Em particular, `start`, `stop`, e outros argumentos para um script [.filename]#rc.d# são manipulados desta forma. Um método é uma expressão man:sh[1] armazenada em uma variável chamada `argument_cmd`, onde _argument_ corresponde ao que pode ser especificado na linha de comando do script. Veremos mais tarde como o man:rc.subr[8] fornece métodos padrão para os argumentos padrão.", "id": 523563, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523563/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611796/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:09:36.210435Z", "action": 2, "target": "Para tornar o código em [.filename]#rc.d# mais uniforme, é comum usar `${name}` sempre que apropriado. Assim, várias linhas podem ser simplesmente copiadas de um script para outro.", "id": 523564, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523564/?format=api" }, { "unit": null, "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": null, "timestamp": "2023-04-29T23:09:47.192836Z", "action": 17, "target": "", "id": 523565, "action_name": "Committed changes", "url": "https://translate-dev.freebsd.org/api/changes/523565/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611797/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:11:26.602058Z", "action": 5, "target": "Devemos ter em mente que o man:rc.subr[8] fornece métodos padrões para os argumentos padrões. Consequentemente, devemos substituir um método padrão por uma expressão man:sh[1] sem efeito se quisermos que ele não faça nada.", "id": 523567, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523567/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611797/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:12:57.333937Z", "action": 2, "target": "➎ Devemos ter em mente que o man:rc.subr[8] fornece métodos padrões para os argumentos padrões. Consequentemente, devemos substituir um método padrão por uma expressão man:sh[1] sem efeito se quisermos que ele não faça nada.", "id": 523568, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523568/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611795/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:13:10.009835Z", "action": 2, "target": "➍ Cada script [.filename]#rc.d# fornece manipuladores, ou métodos, para o man:rc.subr[8] invocar. Em particular, `start`, `stop`, e outros argumentos para um script [.filename]#rc.d# são manipulados desta forma. Um método é uma expressão man:sh[1] armazenada em uma variável chamada `argument_cmd`, onde _argument_ corresponde ao que pode ser especificado na linha de comando do script. Veremos mais tarde como o man:rc.subr[8] fornece métodos padrão para os argumentos padrão.", "id": 523569, "action_name": "Translation changed", "url": "https://translate-dev.freebsd.org/api/changes/523569/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611798/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:15:53.677863Z", "action": 5, "target": "➏ O corpo de um método sofisticado pode ser implementado como uma função. É uma boa ideia dar um nome significativo à função.", "id": 523570, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523570/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381730/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:16:37.171703Z", "action": 5, "target": "Recomenda-se fortemente adicionar o prefixo `${name}` aos nomes de todas as funções definidas no nosso script para que nunca entrem em conflito com as funções de man:rc.subr[8] ou outro arquivo de inclusão comum.", "id": 523571, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523571/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611799/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:19:13.314245Z", "action": 5, "target": "➐ Essa chamada para o man:rc.subr[8] carrega as variáveis do man:rc.conf[5]. Nosso script ainda não as usa, mas ainda é recomendável carregar o man:rc.conf[5] porque pode haver variáveis do man:rc.conf[5] controlando o man:rc.subr[8] em si.", "id": 523576, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523576/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611800/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:20:01.797959Z", "action": 5, "target": "➑ Geralmente, esse é o último comando em um script [.filename]#rc.d#. Ele invoca a maquinaria do man:rc.subr[8] para realizar a ação solicitada usando as variáveis e métodos que o nosso script forneceu.", "id": 523577, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523577/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611801/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:29.391888Z", "action": 5, "target": "Agora vamos adicionar alguns controles ao nosso script fictício. Como você deve saber, scripts [.filename]#rc.d# são controlados com o man:rc.conf[5]. Felizmente, o man:rc.subr[8] oculta todas as complicações para nós. O script a seguir usa o man:rc.conf[5] por meio do man:rc.subr[8] para verificar se está habilitado em primeiro lugar e para buscar uma mensagem para ser exibida na inicialização. Essas duas tarefas, na verdade, são independentes. Por um lado, um script [.filename]#rc.d# pode apenas suportar a habilitação e desabilitação do seu serviço. Por outro lado, um script [.filename]#rc.d# obrigatório pode ter variáveis de configuração. No entanto, faremos as duas coisas no mesmo script:", "id": 523578, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523578/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381740/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:35.267924Z", "action": 37, "target": "#!/bin/sh\n", "id": 523585, "action_name": "Marked for edit", "url": "https://translate-dev.freebsd.org/api/changes/523585/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381742/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:38.944713Z", "action": 5, "target": ". /etc/rc.subr\n", "id": 523589, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523589/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381744/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:42.906071Z", "action": 5, "target": "name=dummy\nrcvar=dummy_enable <.>\n", "id": 523590, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523590/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381746/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:50.294915Z", "action": 5, "target": "start_cmd=\"${name}_start\"\nstop_cmd=\":\"\n", "id": 523591, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523591/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381748/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:25:56.256756Z", "action": 5, "target": "load_rc_config $name <.>\n: ${dummy_enable:=no} <.>\n: ${dummy_msg=\"Nothing started.\"} <.>\n", "id": 523592, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523592/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381750/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:26:17.064696Z", "action": 5, "target": "dummy_start()\n{\n\techo \"$dummy_msg\" <.>\n}\n", "id": 523593, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523593/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381752/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:26:24.958104Z", "action": 5, "target": "run_rc_command \"$1\"\n", "id": 523596, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523596/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381756/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:26:53.332971Z", "action": 5, "target": "➊ A variável `rcvar` especifica o nome da variável do botão LIGA/DESLIGA.", "id": 523597, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523597/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381758/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:28:22.084048Z", "action": 5, "target": "➋ Agora, o `load_rc_config` é invocado mais cedo no script, antes que quaisquer variáveis do man:rc.conf[5] sejam acessadas.", "id": 523598, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523598/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611802/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:34:19.904503Z", "action": 5, "target": "Enquanto examina os scripts [.filename]#rc.d#, tenha em mente que o man:sh[1] adia a avaliação de expressões em uma função até que esta seja chamada. Portanto, não é um erro invocar `load_rc_config` tão tarde quanto logo antes de `run_rc_command` e ainda assim acessar as variáveis man:rc.conf[5] das funções de método exportadas para `run_rc_command`. Isso ocorre porque as funções de método devem ser chamadas por `run_rc_command`, que é invocado _após_ `load_rc_config`.", "id": 523599, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523599/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611803/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:38:13.302836Z", "action": 5, "target": "➌ Aviso será emitido pelo `run_rc_command` se o `rcvar` em si estiver configurado, mas a variável de controle indicada estiver desativada. Se o seu script [.filename]#rc.d# é para o sistema base, você deve adicionar uma configuração padrão para o knob em [.filename]#/etc/defaults/rc.conf# e documentá-lo em man:rc.conf[5]. Caso contrário, é seu script que deve fornecer uma configuração padrão para o knob. A abordagem canônica para o último caso é mostrada no exemplo.", "id": 523600, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523600/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611804/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:39:34.479809Z", "action": 5, "target": "Você pode fazer o man:rc.subr[8] agir como se o botão estivesse definido como `ON`, independentemente de sua configuração atual, prefixando o argumento do script com `one` ou `force`, como em `onestart` ou `forcestop`. No entanto, tenha em mente que `force` tem outros efeitos perigosos que abordaremos abaixo, enquanto `one` apenas substitui o botão ON/OFF. Por exemplo, suponha que `dummy_enable` esteja definido como `OFF`. O seguinte comando executará o método `start` apesar da configuração:", "id": 523602, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523602/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381766/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:39:45.358838Z", "action": 5, "target": "# /etc/rc.d/dummy onestart\n", "id": 523603, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523603/?format=api" }, { "unit": null, "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": null, "timestamp": "2023-04-29T23:39:57.636782Z", "action": 17, "target": "", "id": 523606, "action_name": "Committed changes", "url": "https://translate-dev.freebsd.org/api/changes/523606/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611805/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:40:52.484120Z", "action": 5, "target": "➍ Agora a mensagem a ser exibida na inicialização não é mais codificada no script. É especificada por uma variável man:rc.conf[5] chamada `dummy_msg`. Este é um exemplo trivial de como as variáveis man:rc.conf[5] podem controlar um script [.filename]#rc.d#.", "id": 523614, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523614/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611806/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:42:13.829549Z", "action": 5, "target": "Os nomes de todas as variáveis man:rc.conf[5] usadas exclusivamente pelo nosso script _devem_ ter o mesmo prefixo: `${name}_`. Por exemplo: `dummy_mode`, `dummy_state_file`, e assim por diante.", "id": 523615, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523615/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/381772/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:42:41.295962Z", "action": 5, "target": "Embora seja possível usar um nome mais curto internamente, por exemplo, apenas `msg`, adicionar o prefixo único `${name}_` a todos os nomes globais introduzidos pelo nosso script nos salvará de possíveis colisões com o namespace do man:rc.subr[8].", "id": 523616, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523616/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611807/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:44:31.232833Z", "action": 5, "target": "Como regra geral, os scripts [.filename]#rc.d# do sistema base não precisam fornecer valores padrão para suas variáveis man:rc.conf[5], pois os valores padrão devem ser definidos em [.filename]#/etc/defaults/rc.conf#. Por outro lado, os scripts [.filename]#rc.d# para ports devem fornecer os valores padrão conforme mostrado no exemplo.", "id": 523620, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523620/?format=api" }, { "unit": "https://translate-dev.freebsd.org/api/units/611808/?format=api", "component": "https://translate-dev.freebsd.org/api/components/documentation/articlesrc-scripting_index/?format=api", "translation": "https://translate-dev.freebsd.org/api/translations/documentation/articlesrc-scripting_index/pt_BR/?format=api", "user": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "author": "https://translate-dev.freebsd.org/api/users/ebrandi/?format=api", "timestamp": "2023-04-29T23:45:21.655343Z", "action": 5, "target": "➎ Aqui usamos `dummy_msg` para controlar nosso script, ou seja, para emitir uma mensagem variável. O uso de uma função shell é excessivo aqui, uma vez que ela executa apenas um único comando; uma alternativa igualmente válida é:", "id": 523622, "action_name": "New translation", "url": "https://translate-dev.freebsd.org/api/changes/523622/?format=api" } ] }{ "count": 3424, "next": "