def main(): default_noto = notoconfig.values.get('noto') default_cldr = notoconfig.values.get('cldr') parser = argparse.ArgumentParser() parser.add_argument('--cldr', help='directory of local cldr svn repo (default %s)' % default_cldr, default=default_cldr) parser.add_argument('--update_cldr', help='update cldr before running', action='store_true') parser.add_argument('--cldr_tag', help='tag name to use for cldr (default empty)', default='') parser.add_argument('--noto', help='directory of local noto git repo (default %s)' % default_noto, default=default_noto) parser.add_argument('--branch', help='confirm current branch of noto git repo') args = parser.parse_args() if not args.cldr or not args.noto: print("Missing either or both of cldr and noto locations.") return if args.branch: cur_branch = tool_utils.git_get_branch(args.noto) if cur_branch != args.branch: print("Expected branch '%s' but %s is in branch '%s'." % (args.branch, args.noto, cur_branch)) return update_cldr(args.noto, args.cldr, args.update_cldr, args.cldr_tag)
def get_repo_info(skip_checks): """Looks at the three noto fonts repos (fonts, cjk, emoji) and gets information about the current state of each. Returns a mapping from 'fonts', 'cjk', and 'emoji' to the corresponding info. If skip_checks is not set, checks that the repos are in a good state (at a known annotated tag and there are no pending commits), otherwise an exception is raised.""" repo_info = {} errors = [] for repo_name in 'fonts cjk emoji'.split(): msg_lines = [] repo = tool_utils.resolve_path('[%s]' % repo_name) repo_head_commit = tool_utils.git_head_commit(repo) repo_branch = tool_utils.git_get_branch(repo) msg_lines.append('Repo: noto-%s' % repo_name) if skip_checks: msg_lines.append('Branch: %s' % repo_branch) msg_lines.append('Commit: %s\nSubject: %s' % repo_head_commit) else: if not tool_utils.git_is_clean(repo): errors.append('repo noto-%s is not clean' % repo_name) continue repo_tag = None for tag in tool_utils.git_tags(repo): if tag[0] == repo_head_commit[0]: # matching commits repo_tag = tag break if not repo_tag: errors.append('noto-%s is not at a release tag' % repo_name) continue tag_commit, tag_name, tag_date = tag tag_info = tool_utils.git_tag_info(repo, tag_name) msg_lines.append( 'Tag: %s\nDate: %s\nCommit:%s\n\n%s' % ( tag_name, tag_date, tag_commit, tag_info)) repo_info[repo_name] = '\n'.join(msg_lines) if errors: for _, v in sorted(repo_info.iteritems()): print v raise Exception('Some repos are not clean\n' + '\n'.join(errors)) return repo_info
def main(): default_noto = notoconfig.values.get("noto") default_cldr = notoconfig.values.get("cldr") parser = argparse.ArgumentParser() parser.add_argument( "--cldr", help="directory of local cldr svn repo (default %s)" % default_cldr, default=default_cldr, ) parser.add_argument("--update_cldr", help="update cldr before running", action="store_true") parser.add_argument("--cldr_tag", help="tag name to use for cldr (default empty)", default="") parser.add_argument( "--noto", help="directory of local noto git repo (default %s)" % default_noto, default=default_noto, ) parser.add_argument("--branch", help="confirm current branch of noto git repo") args = parser.parse_args() if not args.cldr or not args.noto: print("Missing either or both of cldr and noto locations.") return if args.branch: cur_branch = tool_utils.git_get_branch(args.noto) if cur_branch != args.branch: print("Expected branch '%s' but %s is in branch '%s'." % (args.branch, args.noto, cur_branch)) return update_cldr(args.noto, args.cldr, args.update_cldr, args.cldr_tag)