Difference between revisions of "User:Kloonurm"

From ICO wiki
(Skript)
Line 40: Line 40:
 
==Python==
 
==Python==
  
==Skript==
+
'''Skript'''
 
<source lang="python">
 
<source lang="python">
 
#!/usr/bin/python
 
#!/usr/bin/python

Revision as of 14:09, 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()