GPL Header in 200 Java Klassen einfügen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
dave
Beiträge: 294
Registriert: 15.05.2003 12:26:58
Wohnort: Niederkrüchten
Kontaktdaten:

GPL Header in 200 Java Klassen einfügen

Beitrag von dave » 03.07.2007 20:37:53

Hallo zusammen,

ich werde im Rahmen meiner Diplomarbeit ein Java Projekt ausliefern. Dieses beinhaltet ca. 200 Klassen jetzt muss natürlich in jede Klasse der Lizenz Header rein (wollte GPL v3 nutzen). Ich hab verständlicherweise aber keine Lust das von Hand zu machen. In Eclipse ist auch ein Tool dabei was das eigentl. machen sollte aber leider haben die Blitzbirnen den standard Text wohl hardcodiert so das selbst wenn man da seinen eigenen Kram einhämmert immer die Eclipse Lizenz in alle Klassen eingefügt wird.

Also ich brauche folgendes:

Ein tool egal ob gui oder command line das den lizenz header in meine 200 java files einfügt und das ganze in UTF8.
Running Debian GNU/lLinux - Testing (for life:-))
Core 2 Duo E6400
4GB Ram
Asus P5B
Asus Geforce 7300 GT
750GB 32MB Cache Seagate SATA II NCQ
500GB 16MB Cache Seagate SATA II NCQ
Terratect Cinergy DVB-C

Benutzeravatar
uljanow
Beiträge: 529
Registriert: 20.09.2005 21:14:00

Beitrag von uljanow » 03.07.2007 21:40:22

Wie wäre es mit bash als tool?

Code: Alles auswählen

#!/bin/sh
GPLv3_HEADER_FILE=

for file in `ls *.java`; do
         cat ${GPLv3_HEADER_FILE} > ${file}.tmp
         cat ${file} >> ${file}.tmp
         mv ${file} ${file}.old
         mv ${file}.tmp ${file}
done
exit 0
Quick, dirty and no warranty.

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 03.07.2007 22:57:19

mit einem

Code: Alles auswählen

find -type f -name "*.java" | while read file; do
bist du dann sogar rekursiv am Dateien anpassen :)

MfG Peschmä

P.S. natürlich erst ein Backup machen - aber davon hast du sicher ein paar :P
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 04.07.2007 09:22:59

ex ist fuer solche Sachen gemacht

Code: Alles auswählen

for i in $*
do
ex $i <<EOF
1i
#GPL
#HEADER
.
x
EOF
done
musst nur noch GPL HEADER durch deinen Text ersetzen und
./script *.<myfileextension> aufrufen

kleine Vorfuehrung:

Code: Alles auswählen

cat a.bla  b.bla
aa
aab
aa
aab
ca@mourx:~/tt$ ./s *.bla
ca@mourx:~/tt$ cat a.bla b.bla
#GPL
#HEADER
aa
aab
#GPL
#HEADER
aa
aab

dave
Beiträge: 294
Registriert: 15.05.2003 12:26:58
Wohnort: Niederkrüchten
Kontaktdaten:

Beitrag von dave » 04.07.2007 11:26:11

also das skript von c_a hab ich jez mal ausprobiert und das funktioniert soweit auch ganz super. aber eine kleine frage ist es möglich das auf alle meine java package sprich ordner in einem rutsch anzuwenden ?

weil so muss ich mich immer in jedes package hangeln.
Running Debian GNU/lLinux - Testing (for life:-))
Core 2 Duo E6400
4GB Ram
Asus P5B
Asus Geforce 7300 GT
750GB 32MB Cache Seagate SATA II NCQ
500GB 16MB Cache Seagate SATA II NCQ
Terratect Cinergy DVB-C

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 04.07.2007 12:14:46

Ja, du musst nur entweder
a) alle zu veraendernde Ordner/Files mit wildcards angeben
etwas so

Code: Alles auswählen

./s */*.extension
wenn es einer restriktiveren wirlcard bedarf und du dabei Hilfe brauchst kannst du mir ein ls output zeigen und mir sagen welche Ordner/Files du matchen moechtest...
oder
b) du verwendest find mit -exec
etwa so

Code: Alles auswählen

find . -name '*.extension' -exec ./s {} \; 

Antworten