def set_up_landmines(target, new_landmines): """Does the work of setting, planting, and triggering landmines.""" out_dir = get_target_build_dir(landmine_utils.builder(), target, landmine_utils.platform() == 'ios') landmines_path = os.path.join(out_dir, '.landmines') if not os.path.exists(out_dir): os.makedirs(out_dir) if not os.path.exists(landmines_path): with open(landmines_path, 'w') as f: f.writelines(new_landmines) else: triggered = os.path.join(out_dir, '.landmines_triggered') with open(landmines_path, 'r') as f: old_landmines = f.readlines() if old_landmines != new_landmines: old_date = time.ctime(os.stat(landmines_path).st_ctime) diff = difflib.unified_diff(old_landmines, new_landmines, fromfile='old_landmines', tofile='new_landmines', fromfiledate=old_date, tofiledate=time.ctime(), n=0) with open(triggered, 'w') as f: f.writelines(diff) elif os.path.exists(triggered): # Remove false triggered landmines. os.remove(triggered)