Преглед изворни кода

Add syncignore python script

Kevin Heinicke пре 9 година
родитељ
комит
ef232fd4f5
1 измењених фајлова са 49 додато и 0 уклоњено
  1. 49 0
      scripts/btsyncIgnore

+ 49 - 0
scripts/btsyncIgnore

@@ -0,0 +1,49 @@
+#! /usr/bin/env python3
+import sys
+import os
+
+currentDir = os.getcwd()
+
+BEGIN = '#$ IGNORE'
+END = '#$ END IGNORE'
+
+while not os.path.isfile(os.path.join(currentDir, '.sync/IgnoreList')):
+    currentDir = os.path.abspath(os.path.join(currentDir, '..'))
+    if currentDir == os.path.realpath('/'):
+        print('Error: Did not find `.sync`-directory above current directory.')
+        sys.exit(1)
+
+with open(os.path.join(currentDir, '.sync/IgnoreList'), 'r') as f:
+    lineArray = f.read().split('\n')
+
+try:
+    before = lineArray[:lineArray.index(BEGIN)]
+    after = lineArray[lineArray.index(END) + 1:]
+except:
+    before = lineArray
+    after = ['']
+
+
+def findRepos(directory, repoArray=[]):
+    for file in os.listdir(directory):
+        if file.endswith('.syncignore'):
+            repoArray.append(directory)
+        elif os.path.isdir(os.path.join(directory, file)):
+            findRepos(os.path.join(directory, file), repoArray)
+        elif file.startswith('.'):
+            pass
+    return repoArray
+
+newIgnored = findRepos(currentDir)
+if len(newIgnored) == 0:
+    print('Found no `.syncignore`-files.')
+    sys.exit(0)
+
+for index, string in enumerate(newIgnored):
+    newIgnored[index] = os.path.join('.', string.replace(currentDir, ''))
+print("Ignoring\n.", '\n.'.join(newIgnored))
+newIgnored.insert(0, BEGIN)
+newIgnored.append(END)
+
+with open(os.path.join(currentDir, '.sync/IgnoreList'), 'w') as f:
+    f.write('\n'.join(before + newIgnored + after))