@@ -0,0 +1,2498 @@
+#!/usr/bin/env python3%0A%0Aimport os%0Aimport sys%0Aimport subprocess%0A%0A######## GLOBALS #########%0AMAINPREFIX = %22z%22%0APREFIX = %22intercept_%22%0A##########################%0A%0Adef mod_time(path):%0A    if not os.path.isdir(path):%0A        return os.path.getmtime(path)%0A    maxi = os.path.getmtime(path)%0A    for p in os.listdir(path):%0A        maxi = max(mod_time(os.path.join(path, p)), maxi)%0A    return maxi%0A%0A%0Adef check_for_changes(addonspath, module):%0A    if not os.path.exists(os.path.join(addonspath, %22%7B%7D%7B%7D.pbo%22.format(PREFIX,module))):%0A        return True%0A    return mod_time(os.path.join(addonspath, module)) %3E mod_time(os.path.join(addonspath, %22%7B%7D%7B%7D.pbo%22.format(PREFIX,module)))%0A%0Adef check_for_obsolete_pbos(addonspath, file):%0A    module = file%5Blen(PREFIX):-4%5D%0A    if not os.path.exists(os.path.join(addonspath, module)):%0A        return True%0A    return False%0A%0Adef main():%0A    print(%22%22%22%0A  #########################%0A  # Intercept Debug Build #%0A  #########################%0A%22%22%22)%0A%0A    scriptpath = os.path.realpath(__file__)%0A    projectpath = os.path.dirname(os.path.dirname(scriptpath))%0A    addonspath = os.path.join(projectpath, %22rv/addons%22)%0A%0A    os.chdir(addonspath)%0A%0A    made = 0%0A    failed = 0%0A    skipped = 0%0A    removed = 0%0A%0A    for file in os.listdir(addonspath):%0A        if os.path.isfile(file):%0A            if check_for_obsolete_pbos(addonspath, file):%0A                removed += 1%0A                print(%22  Removing obsolete file =%3E %22 + file)%0A                os.remove(file)%0A    print(%22%22)%0A%0A    for p in os.listdir(addonspath):%0A        path = os.path.join(addonspath, p)%0A        if not os.path.isdir(path):%0A            continue%0A        if p%5B0%5D == %22.%22:%0A            continue%0A        if not check_for_changes(addonspath, p):%0A            skipped += 1%0A            print(%22  Skipping %7B%7D.%22.format(p))%0A            continue%0A%0A        print(%22# Making %7B%7D ...%22.format(p))%0A%0A        try:%0A            subprocess.check_output(%5B%0A                %22makepbo%22,%0A                %22-NUP%22,%0A                %22-@=%7B%7D%5C%5C%7B%7D%5C%5Caddons%5C%5C%7B%7D%22.format(MAINPREFIX,PREFIX.rstrip(%22_%22),p),%0A                p,%0A                %22%7B%7D%7B%7D.pbo%22.format(PREFIX,p)%0A            %5D, stderr=subprocess.STDOUT)%0A        except:%0A            failed += 1%0A            print(%22  Failed to make %7B%7D.%22.format(p))%0A        else:%0A            made += 1%0A            print(%22  Successfully made %7B%7D.%22.format(p))%0A%0A    print(%22%5Cn# Done.%22)%0A    print(%22  Made %7B%7D, skipped %7B%7D, removed %7B%7D, failed to make %7B%7D.%22.format(made, skipped, removed, failed))%0A%0A%0Aif __name__ == %22__main__%22:%0A    sys.exit(main())%0A

Add ACE3 build.py to create intercept_core.pbo