summaryrefslogtreecommitdiff
path: root/scripts/packages-formatter.py
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2014-11-21 18:09:12 -0500
committerOz Linden <oz@lindenlab.com>2014-11-21 18:09:12 -0500
commit680194deaf7a35caaa629abc16e886d71baff636 (patch)
tree187ab1b92cf86e320f3a6a0f5d8237546b98798e /scripts/packages-formatter.py
parent6df6aef62176328c3b0fafa43fd611d4e25ef35c (diff)
automate keeping the About SL -> Licenses tab correct
Diffstat (limited to 'scripts/packages-formatter.py')
-rwxr-xr-xscripts/packages-formatter.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/scripts/packages-formatter.py b/scripts/packages-formatter.py
new file mode 100755
index 0000000000..1432cdaebe
--- /dev/null
+++ b/scripts/packages-formatter.py
@@ -0,0 +1,73 @@
+#!/usr/bin/env python
+"""\
+This module formats the package version and copyright information for the
+viewer and its dependent packages.
+
+$LicenseInfo:firstyear=2014&license=viewerlgpl$
+Second Life Viewer Source Code
+Copyright (C) 2014, Linden Research, Inc.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation;
+version 2.1 of the License only.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
+$/LicenseInfo$
+"""
+import os
+import sys
+import re
+import subprocess
+
+autobuild=os.getenv('AUTOBUILD',
+ 'autobuild' if not ( sys.platform == 'win32' or sys.platform == 'cygwin')
+ else 'autobuild.cmd')
+
+pkg_line=re.compile('^([\w-]+):\s+(.*)$')
+
+version={}
+versions=subprocess.Popen([autobuild, 'install', '--versions'],
+ stdin=None, stdout=subprocess.PIPE, universal_newlines=True).stdout
+for line in versions:
+ pkg_info = pkg_line.match(line)
+ if pkg_info:
+ pkg = pkg_info.group(1)
+ if pkg not in version:
+ version[pkg] = pkg_info.group(2).strip()
+ else:
+ sys.exit("Duplicate version for %s" % pkg)
+ else:
+ sys.exit("Unrecognized --versions output: %s" % line)
+
+copyright={}
+copyrights=subprocess.Popen([autobuild, 'install', '--copyrights'],
+ stdin=None, stdout=subprocess.PIPE, universal_newlines=True).stdout
+viewer_copyright = copyrights.readline() # first line is the copyright for the viewer itself
+for line in copyrights:
+ pkg_info = pkg_line.match(line)
+ if pkg_info:
+ pkg = pkg_info.group(1)
+ if pkg not in copyright:
+ copyright[pkg] = pkg_info.group(2).strip()
+ else:
+ sys.exit("Duplicate copyright for %s" % pkg)
+ else:
+ sys.exit("Unrecognized --copyrights output: %s" % line)
+
+print viewer_copyright
+for pkg in sorted(version):
+ print ': '.join([pkg, version[pkg]])
+ if pkg in copyright:
+ print copyright[pkg]
+ else:
+ sys.exit("No copyright for %s" % pkg)