Difference between revisions of "User:Kloonurm"

From ICO wiki
Line 36: Line 36:
 
fi
 
fi
 
exit 0
 
exit 0
 +
</source>
 +
 +
==Python==
 +
 +
==Skript==
 +
<source lang="python">
 +
#!/usr/bin/python
 +
# -*- coding: utf-8 -*-
 +
#Autor: Kaido Loonurm
 +
#Versioon 0.1
 +
#Skript on testitud Ubuntu 10.10 versiooniga.
 +
#Skript otsib ette antud pathilt kõik failid mis kattuvad mustrirga, ning kontrollib kas string on faili alguses olemas.
 +
#Kui string puudub failist siis lisatakse string faili algusesse ja n2idatakse faili nime mida muudeti.
 +
 +
 +
import fnmatch
 +
import os,sys
 +
 +
#Kontrollin kas k6ik argumendid on skriptile ette antud
 +
if len(sys.argv) != 4:
 +
print 'Kasutamine: ./autor.py <Path> <Muster n2iteks *.java> <String> '
 +
print 'M22ratud pathilt k2iakse kõik folderid rekursiivselt l2bi!!'
 +
sys.exit(1)
 +
# Loen parameetrid
 +
# 1 = path kust alates otsida
 +
rootPath = sys.argv[1]
 +
# 2 = muster mille j2rgi otsida
 +
pattern = sys.argv[2]
 +
# 3 = String mida tahetakse lisada faili algusesse
 +
autor= sys.argv[3]
 +
 +
#k2in rekursiivselt k6ik folderid l2bi
 +
for root, dirs, files in os.walk(rootPath):
 +
#otsin mustri j2rgi vajalikud failid
 +
for filename in fnmatch.filter(files, pattern):
 +
#Vaatame faili sisu ja leiame failid kus etteantud string on failialgusest puudu
 +
data = open(os.path.join(root, filename), 'rU').readlines()
 +
#marker mis muudetakse 1-ks kui string leitakse failist
 +
leidsin = 0
 +
# K2ime faili l2bi ja otsime stringi
 +
for rida in data:
 +
if autor in rida:
 +
leidsin=1
 +
#kui string oli failist puudu siis kirjutame selle faili algusesse esimesele reale
 +
if not leidsin:
 +
fp = open(os.path.join(root, filename), 'w')
 +
#\n annab meile stringi l6ppu reavahetuse
 +
fp.write(autor+'\n')
 +
for rida in data:
 +
fp.write(rida)
 +
print 'Muutsin faili: '+os.path.join(root, filename)
 +
fp.close()
 
</source>
 
</source>

Revision as of 13:56, 22 May 2011

Bash

Skript

#!/bin/bash
#Author: Kaido Loonurm
#Kasutamine: add-license.sh [text or text file path] [path... or search parameter]
#Otsib faili esimeselt realt vastet, kui ei leia siis lisab faili agusesse etteantud rea
#Näide: add-author.sh "Author:John Smith" *.java
#Versioon 0.8

TEXT=$1

#Kontrollin kas on ette antud fail v6i tekstiline v22rtus
if [ -f $TEXT ]
then
	license_text=`head -1 $TEXT`

else
	license_text=$TEXT
fi

#leian vajalikud failid ja loen need masiivi
for f in $(find -type f -iname $2); do
#kontrollin kas faili alguses leidub etteantud string
file_beginning=`head -1 $f | grep "$license_text"`

#Kui stringi ei leitud siis lisan selle faili  algusesse
if [ $? -ne 0 ]; then
#Loen faili sisu muutujasse et faili sisu s2iliks esialgsel kujul
AJUTINE=`cat "$f"`
#Kleebin lisatava teksti ja vana teksti kokku
echo -e "$license_text" "\n" "$AJUTINE" > tmp.txt; mv tmp.txt $f
#annan teada millised failid muudeti
echo "Muutsin faili: $f"
fi
exit 0

Python

Skript

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Autor: Kaido Loonurm
#Versioon 0.1
#Skript on testitud Ubuntu 10.10 versiooniga.
#Skript otsib ette antud pathilt kõik failid mis kattuvad mustrirga, ning kontrollib kas string on faili alguses olemas.
#Kui string puudub failist siis lisatakse string faili algusesse ja n2idatakse faili nime mida muudeti.


import fnmatch
import os,sys

#Kontrollin kas k6ik argumendid on skriptile ette antud
if len(sys.argv) != 4:
	print 'Kasutamine: ./autor.py <Path> <Muster n2iteks *.java> <String> '
	print 'M22ratud pathilt k2iakse kõik folderid rekursiivselt l2bi!!'
	sys.exit(1)
# Loen parameetrid
# 1 = path kust alates otsida
rootPath = sys.argv[1]
# 2 = muster mille j2rgi otsida
pattern = sys.argv[2]
# 3 = String mida tahetakse lisada faili algusesse
autor= sys.argv[3]

#k2in rekursiivselt k6ik folderid l2bi
for root, dirs, files in os.walk(rootPath):
	#otsin mustri j2rgi vajalikud failid
	for filename in fnmatch.filter(files, pattern):
		#Vaatame faili sisu ja leiame failid kus etteantud string on failialgusest puudu
		data = open(os.path.join(root, filename), 'rU').readlines()
		#marker mis muudetakse 1-ks kui string leitakse failist
		leidsin = 0
		# K2ime faili l2bi ja otsime stringi
		for rida in data:
			if autor in rida:
				leidsin=1
		#kui string oli failist puudu siis kirjutame selle faili algusesse esimesele reale
		if not leidsin:
			fp = open(os.path.join(root, filename), 'w')
			#\n annab meile stringi l6ppu reavahetuse
			fp.write(autor+'\n')
			for rida in data:
				fp.write(rida)
			print 'Muutsin faili: '+os.path.join(root, filename)
			fp.close()