nextcloud-helper/nextcloud/conflicts/backout_conflict_backups.py

52 lines
No EOL
1.1 KiB
Python

import os
import sys
import shutil
import glob
try:
input = raw_input
except NameError:
pass
def program_path():
pp = os.path.realpath(sys.argv[0])
return os.path.split(pp)[0]
pp = program_path()
def resolve(cf):
for f, fp, fn, fe, i in cf:
base = os.path.split(fp)[0]
fo = fn[:i] + fe
fpo = os.path.join(base, fo)
ft = fn[:i] + " (temp " + fn[i+19:] + fe
fpt = os.path.join(base, ft)
print("Renaming %s to %s" % (fp, fpo))
if os.path.exists(fpo):
os.rename(fp, fpt)
os.rename(fpo, fp)
os.rename(fpt, fpo)
else:
os.rename(fp, fpo)
rootdir=os.path.join(pp, '..', 'hardlinks')
for base, dirs, files in os.walk(rootdir):
conflicts = {}
for f in files:
fp = os.path.join(base, f)
fn, fe = os.path.splitext(f)
i = fn.find(" (resolved confict ")
if i != -1:
print(fn)
conflict_id = fn[i+19:-1]
conflict_id = ''
if not conflict_id in conflicts:
conflicts[conflict_id] = []
conflicts[conflict_id] += [(f,fp,fn,fe,i)]
request = None
fixed_answer = False
for cd, cf in conflicts.items():
print("Conflict %s in %s (%d files):" % (cd, base, len(cf)))
resolve(cf)