* Requires Root::
* Archive Policy::
* Update Check Mode::
+* Vercode Operation::
* Update Check Data::
* Auto Update Mode::
* Current Version::
Used in conjunction with @code{Update Check Mode} for certain modes.
+@node Vercode Operation
+@section Vercode Operation
+
+@cindex Vercode Operation
+
+Operation to be applied to the vercode obtained by the defined @code{Update
+Check Mode}. @code{%c} will be replaced by the actual vercode, and the whole
+string will be passed to python's @code{eval} function.
+
+Especially useful with apps that we want to compile for different ABIs, but
+whose vercodes don't always have trailing zeros. With @code{Vercode Operation}
+set at something like @code{%c*10 + 4}, we will be able to track updates and
+build three different versions of every upstream version.
+
@node Archive Policy
@section Archive Policy
logmsg = None
tag = None
+ msg = None
mode = app['Update Check Mode']
if mode == 'Tags':
(version, vercode, tag) = check_tags(app, config['sdk_path'])
(version, vercode) = check_http(app)
elif mode == 'Static':
version = None
- vercode = 'Checking disabled'
+ msg = 'Checking disabled'
elif mode == 'None':
version = None
- vercode = 'Checking disabled'
+ msg = 'Checking disabled'
else:
version = None
- vercode = 'Invalid update check method'
+ msg = 'Invalid update check method'
+
+ if vercode and app['Vercode Operation']:
+ op = app['Vercode Operation'].replace("%c", str(int(vercode)))
+ vercode = str(eval(op))
updating = False
if not version:
- print "..." + vercode
+ print "...%s" % msg
elif vercode == app['Current Version Code']:
print "...up to date"
else:
self.refreshed = True
# Check out the appropriate revision...
rev = str(rev if rev else 'origin/master')
- if subprocess.call(['git', 'checkout', '-f', rev], cwd=self.local) != 0:
+ if subprocess.call(['git', 'checkout', '-f', rev], cwd=self.local) != 0:
raise VCSException("Git checkout failed")
# Get rid of any uncontrolled files left behind...
if subprocess.call(['git', 'clean', '-dffx'], cwd=self.local) != 0:
if subprocess.call(['git', 'submodule', 'update'],
cwd=self.local) != 0:
raise VCSException("Git submodule update failed")
- if subprocess.call(['git', 'submodule', 'foreach',
- 'git', 'reset', '--hard'],
- cwd=self.local) != 0:
- raise VCSException("Git submodule reset failed")
- if subprocess.call(['git', 'submodule', 'foreach',
- 'git', 'clean', '-dffx'],
- cwd=self.local) != 0:
- raise VCSException("Git submodule clean failed")
+ if subprocess.call(['git', 'submodule', 'foreach',
+ 'git', 'reset', '--hard'],
+ cwd=self.local) != 0:
+ raise VCSException("Git submodule reset failed")
+ if subprocess.call(['git', 'submodule', 'foreach',
+ 'git', 'clean', '-dffx'],
+ cwd=self.local) != 0:
+ raise VCSException("Git submodule clean failed")
def gettags(self):
self.checkrepo()
thisinfo['AntiFeatures'] = None
thisinfo['Archive Policy'] = None
thisinfo['Update Check Mode'] = 'None'
+ thisinfo['Vercode Operation'] = None
thisinfo['Auto Update Mode'] = 'None'
thisinfo['Current Version'] = ''
thisinfo['Current Version Code'] = '0'
writefield('Archive Policy')
writefield('Auto Update Mode')
writefield('Update Check Mode')
+ if app['Vercode Operation']:
+ writefield('Vercode Operation')
if 'Update Check Data' in app:
writefield('Update Check Data')
if len(app['Current Version']) > 0: