#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
parser.add_argument("--reconfigure",
action="store_true", dest="reconfigure",
help="Force configuration to be run")
parser.add_argument("--reconfigure",
action="store_true", dest="reconfigure",
help="Force configuration to be run")
action="store_true", dest="wait_after_config",
help="Wait for user confirmation after configuration is finished")
parser.add_argument("--reset-source",
action="store_true", dest="wait_after_config",
help="Wait for user confirmation after configuration is finished")
parser.add_argument("--reset-source",
parser.add_argument("projects", metavar='PROJECT', nargs='*',
help="Manually specify projects or folders to be built (project names take precedence)")
args = parser.parse_args()
parser.add_argument("projects", metavar='PROJECT', nargs='*',
help="Manually specify projects or folders to be built (project names take precedence)")
args = parser.parse_args()
allProjects = OrderedDict() # all projects
allFolders = {} # all folders
workProjects = [] # projects we work on
allProjects = OrderedDict() # all projects
allFolders = {} # all folders
workProjects = [] # projects we work on
except (subprocess.CalledProcessError, KeyboardInterrupt) as e: # for some exceptions, a stackrace is usually pointless
except (subprocess.CalledProcessError, KeyboardInterrupt) as e: # for some exceptions, a stackrace is usually pointless