import urllib
import shutil
import os
+import os.path
from wizard import app, command, shell
if "/.git" in dirpath: continue
if not filenames and not dirnames:
open(os.path.join(dirpath, ".preserve-dir"), "w").write("")
+ # stage all changes
shell.call("git", "add", ".")
+ for f in shell.call("git", "ls-files", "-d", "-z")[0].split("\0"):
+ if f != "":
+ shell.call("git", "rm", "--", f)
def parse_args(argv, baton):
usage = """usage: %prog prepare-pristine APP-VERSION
return options, args
def check_directory(options):
+ if not os.path.exists(".git"):
+ raise Exception("Not in root directory of Git repository")
files = shell.eval("git", "ls-files", "-o")
if files:
raise Exception("Unversioned files exist, refusing to remove (override with --force)")
if not options.force:
if ref != "refs/heads/pristine" and os.path.exists(os.path.join(".git", ref)):
raise Exception("Not on pristine branch (override with --force)")
- try:
- shell.call("git", "status")
+ if shell.eval("git", "ls-files", "-m").strip() != "":
raise Exception("Working copy is dirty (override with --force)")
- except shell.CallError:
- pass
for f in os.listdir(os.getcwd()):
if f == ".git": continue
try: