# ############################################################################
# Helper functions for building packages from the trunk or branches. To use
# this .bbclass simply inherit from it in your conf/local.conf.
#
# - get_branch() helps to construct the package name when fetching by 
#   extracting the directory name above the "build" directory containing the
#   oe environment and bitbake. That directory name is usually the branch in
#   which the package is located in the svn with one exception: "unstable"
#   is synonymous for "trunk". In the package you can then use the ${BRANCH}
#   variable within the svn (or cvs) url for the package.
#
# - get_tomorrow() makes sure the latest version of a package is fetched. To
#   use it, set the SRCDATE to ${TOMORROW}.
# ############################################################################

def get_branch():
	import commands, re
	build = re.sub(r'/sources$', '', commands.getoutput('pwd'))
	build = re.sub(r'/tmp/work.*$', '', build)
	build = re.sub(r'/packages\.4g.*$', '', build)
	if re.search(r'/trunk/[^/]+/?$', build):
		return 'trunk'
	if re.search(r'/unstable$', build):
		return 'trunk'
	if re.search(r'/testing$', build):
		return 'testing'
	return re.sub(r'^.*/([^/]+/[^/]+)/[^/]+/?$', r'\1', build)

# end of get_branch

def get_tomorrow():
	import time
	return time.strftime('%Y%m%d', time.gmtime(time.time() + 3600*24))

# end of get_tomorrow