Compare commits

..

2 commits

Author SHA1 Message Date
9701fff991 Formatting 2024-09-04 15:49:19 +09:00
666557172d Add opt to show "install" pkgs state when SIGUSR1 2024-08-28 17:37:41 +09:00
2 changed files with 43 additions and 6 deletions

View file

@ -24,6 +24,8 @@ error_on_limit = false
datetime_in_local_time = true datetime_in_local_time = true
# If true, all builds will be done in a tmpfs. Recommended to have a lot of RAM and/or swap. # If true, all builds will be done in a tmpfs. Recommended to have a lot of RAM and/or swap.
tmpfs = false tmpfs = false
# If true, only packages to be built will be printed when USR1 is signaled.
print_state_info_only_building_sigusr1 = true
########## END OF MANDATORY VARIABLES ########## END OF MANDATORY VARIABLES
# Each [[entry]] needs a "name". # Each [[entry]] needs a "name".

View file

@ -1758,6 +1758,23 @@ def print_state_info_and_get_update_list(
name_space = " " * (max_name_len - len(pkg_name)) name_space = " " * (max_name_len - len(pkg_name))
if "state" in pkg_dict: if "state" in pkg_dict:
state_str = '"' + pkg_dict["state"] + '"' state_str = '"' + pkg_dict["state"] + '"'
if (
"print_state_SIGUSR1" in other_state
and type(other_state["print_state_SIGUSR1"]) is bool
and other_state["print_state_SIGUSR1"]
and "print_state_info_only_building_sigusr1" in other_state
and type(other_state["print_state_info_only_building_sigusr1"])
is bool
and other_state["print_state_info_only_building_sigusr1"]
):
if state_str == '"install"':
log_print(
f" {pkg_name}{name_space}: pre_state is {state_str: <13}, build_state is \"{pkg_dict['build_status']}\"",
other_state=other_state,
)
if pkg_dict["state"] == "install":
to_update.append(pkg_name)
else:
log_print( log_print(
f" {pkg_name}{name_space}: pre_state is {state_str: <13}, build_state is \"{pkg_dict['build_status']}\"", f" {pkg_name}{name_space}: pre_state is {state_str: <13}, build_state is \"{pkg_dict['build_status']}\"",
other_state=other_state, other_state=other_state,
@ -1893,7 +1910,11 @@ def signal_handler(sig, frame):
"""Handle SIGINT and SIGUSR1.""" """Handle SIGINT and SIGUSR1."""
global OTHER_STATE, PKG_STATE global OTHER_STATE, PKG_STATE
if OTHER_STATE is not None and PKG_STATE is not None: if OTHER_STATE is not None and PKG_STATE is not None:
OTHER_STATE["print_state_SIGUSR1"] = (
signal.Signals(sig) is signal.SIGUSR1
)
print_state_info_and_get_update_list(OTHER_STATE, PKG_STATE) print_state_info_and_get_update_list(OTHER_STATE, PKG_STATE)
OTHER_STATE["print_state_SIGUSR1"] = False
if signal.Signals(sig) is not signal.SIGINT: if signal.Signals(sig) is not signal.SIGINT:
return return
OTHER_STATE["stop_building"] = True OTHER_STATE["stop_building"] = True
@ -2158,6 +2179,8 @@ def main():
other_state["logs_dir"] = None other_state["logs_dir"] = None
other_state["log_limit"] = 1024 * 1024 * 1024 other_state["log_limit"] = 1024 * 1024 * 1024
other_state["error_on_limit"] = False other_state["error_on_limit"] = False
other_state["print_state_SIGUSR1"] = False
other_state["print_state_info_only_building_sigusr1"] = True
if args.pkg and not args.config: if args.pkg and not args.config:
for pkg in args.pkg: for pkg in args.pkg:
pkg_state[pkg] = {} pkg_state[pkg] = {}
@ -2338,6 +2361,18 @@ def main():
other_state["tmpfs"] = True other_state["tmpfs"] = True
else: else:
other_state["tmpfs"] = False other_state["tmpfs"] = False
if (
"print_state_info_only_building_sigusr1" in d
and type(d["print_state_info_only_building_sigusr1"]) is bool
):
other_state["print_state_info_only_building_sigusr1"] = d[
"print_state_info_only_building_sigusr1"
]
print(
'State info print on SIGUSR1 is set to: "{}"'.format(
other_state["print_state_info_only_building_sigusr1"]
)
)
else: else:
log_print( log_print(
'ERROR: At least "--config" or "--pkg" must be specified', 'ERROR: At least "--config" or "--pkg" must be specified',