Estou procurando uma ferramenta que irá, em massa, adicionar um cabeçalho de licença a alguns arquivos de origem, alguns dos quais já têm o cabeçalho. Existe alguma ferramenta que insira um cabeçalho, se ainda não estiver presente?
Edit: Eu intencionalmente não estou marcando uma resposta a esta pergunta, uma vez que as respostas são basicamente específicas do ambiente e subjetivas
header
language-agnostic
Alex Lyman
fonte
fonte
Respostas:
fonte
"$i"
for i in $(find /folder -name '*.cc');
para executar o script nos subdiretóriosSolução Python, modifique conforme sua necessidade
Características:
-
fonte
Verifique o cabeçalho de direitos autorais do RubyGem. Suporta arquivos com extensões que terminam em php, c, h, cpp, hpp, hh, rb, css, js, html. Ele também pode adicionar e remover cabeçalhos.
Instale-o digitando "
sudo gem install copyright-header
"Depois disso, pode fazer algo como:
Ele também suporta arquivos de licença personalizados usando o argumento --license-file.
fonte
--license-file
argumento e use o--remove-path
sinalizador para retirar o cabeçalho exato de todos os arquivos. Basicamente, existem tantos tipos diferentes de cabeçalhos, criar um algoritmo para removê-los de forma confiável não é trivial.Dockerfile
instalação de dependências de ruby onerosas não é mais um problemaAqui está um script Bash que fará o truque, supondo que você tenha o cabeçalho da licença no arquivo license.txt:
Arquivo addlicense.sh:
Agora execute isso em seu diretório de origem:
fonte
cut -f1 -d ' '
Edit: Se você estiver usando o Eclipse, há um plugin
Escrevi um script python simples baseado na resposta do Silver Dragon. Eu precisava de uma solução mais flexível, então pensei nisso. Ele permite que você adicione um headerfile a todos os arquivos em um diretório, recursivamente. Você pode opcionalmente adicionar uma regex que os nomes de arquivo devem corresponder, e uma regex que os nomes de diretório devem corresponder e uma regex que a primeira linha do arquivo não deve corresponder. Você pode usar este último argumento para verificar se o cabeçalho já está incluído.
Este script irá pular automaticamente a primeira linha em um arquivo se este começar com um shebang (#!). Isso para não quebrar outros scripts que dependem disso. Se você não deseja este comportamento, você terá que comentar 3 linhas no cabeçalho de escrita.
Aqui está:
fonte
Para Java, você pode usar o plugin de licença Maven: http://code.google.com/p/maven-license-plugin/
fonte
Ok, aqui está uma ferramenta de interface do usuário simples do Windows que procura todos os arquivos do seu tipo especificado em uma pasta, adiciona o texto que você deseja no início (o texto da licença) e copia o resultado para outro diretório (evitando possíveis problemas de substituição) . Também é grátis. Requerido .Net 4.0.
Na verdade, sou o autor, então fique à vontade para solicitar correções ou novos recursos ... sem promessas de prazo de entrega. ;)
mais informações: ferramenta License Header em Amazify.com
fonte
Confira o adicionador de licença. Ele oferece suporte a vários arquivos de código (até mesmo os personalizados) e trata os cabeçalhos existentes corretamente. Já vem com modelos para as licenças de código aberto mais comuns.
fonte
license-adder
você está se referindo exatamente? Encontrei o License-Adder - aplicativo .NET gratuito - Google Project Hosting e License-Adder · script python simples · GitHubAqui está um que usei em PHP para modificar arquivos PHP. Eu também tinha informações de licença antigas para excluir, para que substituísse o texto antigo primeiro e, em seguida, adicionasse o novo texto imediatamente após a abertura
fonte
Aqui está um que encontrei na lista do Apache. Está escrito em Ruby e parece fácil de ler. Você deve até ser capaz de chamá-lo do rake para uma gentileza especial extra. :)
fonte
Se você ainda precisar de um, existe uma pequena ferramenta que escrevi, chamada SrcHead . Você pode encontrá-lo em http://www.solvasoft.nl/downloads.html
fonte
header.txt
é prefixado//
em cada linha e a primeira linha começa com o Unicode BOM.se você estiver usando sbt, há https://github.com/Banno/sbt-license-plugin
fonte