Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-09 10:47:24

0001 #!/usr/bin/env python3
0002 """segfault-findings-serials.py — permanent ids for the findings written
0003 before serials existed.
0004 
0005 A finding draws its serial (data['serial'], shown as f-n) once, when it is
0006 written (monitor_app/segfaults.py, set_finding). The findings written
0007 before 2026-09-12 have none; this assigns them in creation order and
0008 prints what it assigned. Idempotent: a finding with a serial is left as
0009 it is.
0010 
0011 Django-bootstrap standalone script, by hand::
0012 
0013     cd /data/wenauseic/github/swf-monitor/src
0014     ../../swf-testbed/.venv/bin/python ../scripts/segfault-findings-serials.py --by wenaus
0015 """
0016 import argparse
0017 import os
0018 import sys
0019 
0020 THIS_DIR = os.path.dirname(os.path.abspath(__file__))
0021 sys.path.insert(0, os.path.join(THIS_DIR, '..', 'src'))
0022 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'swf_monitor_project.settings')
0023 
0024 import django  # noqa: E402
0025 django.setup()
0026 
0027 from monitor_app.segfaults import assign_finding_serials, finding_id  # noqa: E402
0028 
0029 
0030 def main():
0031     ap = argparse.ArgumentParser(description=__doc__.split('\n\n')[0])
0032     ap.add_argument('--by', default='operator', help='the version stamp on each finding written')
0033     args = ap.parse_args()
0034     assigned = assign_finding_serials(args.by)
0035     for name, serial in assigned:
0036         print(f'{finding_id(serial)}  {name}')
0037     print(f'{len(assigned)} finding(s) given a serial')
0038     return 0
0039 
0040 
0041 if __name__ == '__main__':
0042     sys.exit(main())