removed
This commit is contained in:
parent
4e6f822e6a
commit
6d2d975e78
1 changed files with 0 additions and 49 deletions
|
@ -1,49 +0,0 @@
|
|||
[[!comment format=mdwn
|
||||
username="simon.parzer@f837bbade0d93f560dc574b04e835b7875c4026f"
|
||||
nickname="simon.parzer"
|
||||
subject="Python script to recover git annex' lost files"
|
||||
date="2016-05-05T11:58:31Z"
|
||||
content="""
|
||||
Maybe someone else needs this too :|
|
||||
Use it at your own risk of course.
|
||||
```
|
||||
#!python3
|
||||
|
||||
import os
|
||||
import re
|
||||
from shutil import copyfile
|
||||
|
||||
targets = {}
|
||||
|
||||
for path, dirs, files in os.walk('.'):
|
||||
for f in files:
|
||||
fp = os.path.join(path, f)
|
||||
if fp.endswith('.py'): continue
|
||||
fp_size = os.stat(fp).st_size
|
||||
if fp_size < 72 or fp_size > 256: continue
|
||||
with open(fp, 'r', encoding='latin1') as stream:
|
||||
l = stream.readline()
|
||||
hashmatch = re.match('.*SHA256E\-\w+\-\-(\w{16})', l)
|
||||
if hashmatch:
|
||||
targets[hashmatch.group(1)] = os.path.abspath(fp)
|
||||
|
||||
#print(targets)
|
||||
|
||||
target = os.path.abspath('.')
|
||||
while not os.path.exists('.git/annex/objects'):
|
||||
os.chdir('..')
|
||||
|
||||
for path, dirs, files in os.walk('.git/annex/objects'):
|
||||
for f in files:
|
||||
fp = os.path.join(path, f)
|
||||
fp_size = os.stat(fp).st_size
|
||||
if fp_size > 512:
|
||||
hashmatch = re.match('.*SHA256E\-\w+\-\-(\w{16})', fp)
|
||||
if hashmatch:
|
||||
hash = hashmatch.group(1)
|
||||
if hash in targets:
|
||||
print(fp, '->', targets[hash])
|
||||
copyfile(fp, targets[hash])
|
||||
|
||||
```
|
||||
"""]]
|
Loading…
Reference in a new issue