%PDF- %PDF-
| Direktori : /proc/self/root/home/waritko/build/Bento4/Scripts/ |
| Current File : //proc/self/root/home/waritko/build/Bento4/Scripts/ExportSourceTree.py |
#! /usr/bin/python
import sys
import os
import shutil
import re
#############################################################
# GetSdkRevision
#############################################################
def GetSdkRevision():
cmd = 'git status --porcelain -b'
lines = os.popen(cmd).readlines()
if not lines[0].startswith('## master'):
print 'ERROR: not on master branch'
return None
if len(lines) > 1:
print 'ERROR: git status not empty'
print ''.join(lines)
return None
cmd = 'git tag --contains HEAD'
tags = os.popen(cmd).readlines()
if len(tags) != 1:
print 'ERROR: expected exactly one tag for HEAD, found', len(tags), ':', tags
return None
version = tags[0].strip()
sep = version.find('-')
if sep < 0:
print 'ERROR: unrecognized version string format:', version
return version[sep+1:]
#############################################################
# GetVersion
#############################################################
def GetVersion():
f = open(BENTO4_HOME+'/Source/C++/Core/Ap4Version.h')
lines = f.readlines()
f.close()
for line in lines:
m = re.match(r'.*AP4_VERSION_STRING *"([0-9]*)\.([0-9]*)\.([0-9]*).*"', line)
if m:
return m.group(1) + '-' + m.group(2) + '-' + m.group(3)
return '0-0-0'
#############################################################
# Main
#############################################################
script_dir = os.path.abspath(os.path.dirname(__file__))
BENTO4_HOME = os.path.join(script_dir,'..')
BENTO4_VERSION = GetVersion()
SDK_REVISION = GetSdkRevision()
if SDK_REVISION == None:
sys.exit(1)
print "Exporting Revision", SDK_REVISION
# compute paths
SDK_NAME='Bento4-SRC-'+BENTO4_VERSION+'-'+SDK_REVISION
SDK_OUTPUT_ROOT=BENTO4_HOME+'/SDK'
SDK_ROOT=SDK_OUTPUT_ROOT+'/'+SDK_NAME
print SDK_NAME
# remove any previous SDK directory
if os.path.exists(SDK_ROOT):
shutil.rmtree(SDK_ROOT)
# ensure that the output dir exists
if not os.path.exists(SDK_OUTPUT_ROOT):
os.makedirs(SDK_OUTPUT_ROOT)
### export
cmd = 'git archive --format=zip HEAD -o '+SDK_ROOT+'.zip'
print cmd
#cmd = 'svn export -r'+SDK_REVISION+' https://zebulon.bok.net/svn/Bento4/trunk '+SDK_NAME
os.system(cmd)