Estoy buscando una herramienta que, a granel, agregue un encabezado de licencia a algunos archivos fuente, algunos de los cuales ya tienen el encabezado. ¿Existe alguna herramienta que inserte un encabezado, si aún no está presente?
Editar: intencionalmente no estoy marcando una respuesta a esta pregunta, ya que las respuestas son básicamente todas subjetivas y específicas del entorno
header
language-agnostic
Alex Lyman
fuente
fuente
Respuestas:
fuente
"$i"
for i in $(find /folder -name '*.cc');
para ejecutar el script en subdirectoriosSolución de Python, modifíquela según sus propias necesidades
caracteristicas:
-
fuente
Echa un vistazo al encabezado de copyright RubyGem. Admite archivos con extensiones que terminan en php, c, h, cpp, hpp, hh, rb, css, js, html. También puede agregar y eliminar encabezados.
Instálelo escribiendo "
sudo gem install copyright-header
"Después de eso, puedes hacer algo como:
También admite archivos de licencia personalizados mediante el argumento --license-file.
fuente
--license-file
argumento y use la--remove-path
bandera para quitar ese encabezado exacto de todos los archivos. Básicamente, hay tantos tipos diferentes de encabezados que crear un algoritmo para eliminarlos de manera confiable no es trivial.Dockerfile
instalación de dependencias ruby onerosas ya no es un problemaAquí hay un script de Bash que hará el truco, suponiendo que tenga el encabezado de la licencia en el archivo license.txt:
Archivo addlicense.sh:
Ahora ejecute esto en su directorio fuente:
fuente
cut -f1 -d ' '
Editar: si está usando eclipse, hay un complemento
Escribí un script de Python simple basado en la respuesta de Silver Dragon. Necesitaba una solución más flexible, así que se me ocurrió esto. Le permite agregar un archivo de encabezado a todos los archivos en un directorio, de forma recursiva. Opcionalmente, puede agregar una expresión regular con la que los nombres de archivo deben coincidir, y una expresión regular con la que deben coincidir los nombres de directorio y una expresión regular con la que la primera línea del archivo no debe coincidir. Puede utilizar este último argumento para comprobar si el encabezado ya está incluido.
Este script omitirá automáticamente la primera línea de un archivo si comienza con un shebang (#!). Esto para no romper otros scripts que se basan en esto. Si no desea este comportamiento, tendrá que comentar 3 líneas en writeheader.
aquí está:
fuente
Para Java, puede utilizar el complemento de licencia de Maven: http://code.google.com/p/maven-license-plugin/
fuente
Ok, aquí hay una sencilla herramienta de interfaz de usuario solo para Windows que busca todos los archivos del tipo especificado en una carpeta, antepone el texto que desea al principio (el texto de su licencia) y copia el resultado en otro directorio (evitando posibles problemas de sobrescritura) . También es gratis. Se requiere .Net 4.0.
De hecho, soy el autor, así que siéntase libre de solicitar arreglos o nuevas funciones ... sin embargo, no hay promesas sobre el calendario de entrega. ;)
más información: Herramienta de encabezado de licencia en Amazify.com
fuente
Consulte el sumador de licencias. Admite varios archivos de código (incluso personalizados) y maneja correctamente los encabezados existentes. Viene ya con plantillas para las licencias de código abierto más comunes.
fuente
license-adder
te refieres exactamente? Encontré License-Adder - Aplicación .NET gratuita - Alojamiento de proyectos de Google y License-Adder · Script Python simple · GitHubAquí hay uno que rodé en PHP para modificar archivos PHP. También tenía información de licencia antigua para eliminar, por lo que primero reemplaza el texto anterior, luego agrega el nuevo texto inmediatamente después de la apertura
fuente
Aquí hay uno que encontré en la lista de Apache. Está escrito en Ruby y parece bastante fácil de leer. Incluso deberías poder llamarlo desde el rastrillo para una bondad especial adicional. :)
fuente
Si aún lo necesita, hay una pequeña herramienta que he escrito, llamada SrcHead . Puede encontrarlo en http://www.solvasoft.nl/downloads.html
fuente
header.txt
se antepone con//
en cada línea y la primera línea comienza con la lista de materiales Unicode.si está utilizando sbt, existe https://github.com/Banno/sbt-license-plugin
fuente