summaryrefslogtreecommitdiff
path: root/Scripts/release.py
diff options
context:
space:
mode:
Diffstat (limited to 'Scripts/release.py')
-rwxr-xr-xScripts/release.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/Scripts/release.py b/Scripts/release.py
index 2387441..1601e37 100755
--- a/Scripts/release.py
+++ b/Scripts/release.py
@@ -2,6 +2,7 @@
requires Python Image Library - http://www.pythonware.com/products/pil/
requires grep and diff - http://www.mingw.org/msys.shtml
requires command line svn - http://subversion.tigris.org/
+requires pysvn - http://pysvn.tigris.org/
example release.cfg:
=========================
@@ -59,6 +60,7 @@ import Image, ImageFont, ImageDraw
from ConfigParser import ConfigParser
from ftplib import FTP
import time
+import pysvn
### read config
@@ -156,6 +158,45 @@ def RunTests():
'tests failed - see test.log for details'
)
+def TestSubversionEOL():
+ print 'ensuring EOL...'
+
+ from os import walk
+ from os.path import join
+ from os.path import splitext
+
+ eoldict = {
+ '.nsh' : 'native',
+ '.nsi' : 'native',
+ '.txt' : 'native',
+ '.ini' : 'CRLF'
+ }
+
+ exceptions = ['newfile.txt', 'oldfile.txt']
+
+ svn = pysvn.Client()
+
+ for root, dirs, files in walk('..'):
+ if '.svn' not in dirs:
+ continue
+
+ def versioned(f):
+ s = svn.status(join(root, f))[0].text_status
+ return s != pysvn.wc_status_kind.unversioned
+
+ svn_files = filter(versioned, files)
+ svn_files = filter(lambda x: x not in exceptions, svn_files)
+
+ for f in svn_files:
+ ext = splitext(f)[1]
+ if ext in eoldict.keys():
+ eol = eoldict[ext]
+ s = svn.propget('svn:eol-style', join(root, f)).values()
+ if not s or s[0] != eol:
+ print '*** %s has bad eol-style' % f
+ log('*** %s has bad eol-style' % f)
+ exit()
+
def CreateMenuImage():
print 'creating images...'
@@ -392,6 +433,7 @@ def CloseLog():
Confirm()
StartLog()
RunTests()
+TestSubversionEOL()
CreateMenuImage()
CommitMenuImage()
TestInstaller()