ff4ff35918
Red Bear OS is a full fork. All sources must be available from git clone with zero network access. Removed gitignore rules that excluded fetched source trees under recipes/*/source/, local/recipes/kde/*/source/, local/recipes/qt/*/source/, and vendor source trees. Build artifacts (target/, build/, source.tar, *.o, *.so) remain excluded. 127291 files added — kernel, relibc, base, bootloader, pkgar, all KDE/Qt frameworks, mesa, wayland, DRM drivers, and every other recipe source.
27 lines
664 B
Python
27 lines
664 B
Python
from builtins import open as _orig_open
|
|
|
|
def open(file, mode='r', bufsize=-1):
|
|
if 'w' not in mode:
|
|
return _orig_open(file, mode, bufsize)
|
|
import os
|
|
backup = file + '~'
|
|
try:
|
|
os.unlink(backup)
|
|
except OSError:
|
|
pass
|
|
try:
|
|
os.rename(file, backup)
|
|
except OSError:
|
|
return _orig_open(file, mode, bufsize)
|
|
f = _orig_open(file, mode, bufsize)
|
|
_orig_close = f.close
|
|
def close():
|
|
_orig_close()
|
|
import filecmp
|
|
if filecmp.cmp(backup, file, shallow=False):
|
|
import os
|
|
os.unlink(file)
|
|
os.rename(backup, file)
|
|
f.close = close
|
|
return f
|