TODO NOW:
- Write the code to make Wordpress figure out its URL from the database
+
- Remerges aren't reflected in the parent files, so `git diff` output is
spurious. Not sure how to fix this w/o tree hackery.
+- Missing ancestor means that certain files cannot be merged, for the curious files;
+ this is indicated by 1,3 but missing 2. There might be some cleverness to be
+ done here by finding a "fake" ancestor to use.
- wizard install wordpress should ask for password. One problem with this is that
Wordpress will still send mail with the wrong username and password, so Wordpress
email to a null address and then fix it manually.
- Parse output HTML for class="error" and give those errors back to the user (done),
then boot them back into configure so they can enter in something different
-- Missing ancestor means that certain files cannot be merged, for the curious files;
- this is indicated by 1,3 but missing 2. There might be some cleverness to be
- done here by finding a "fake" ancestor to use.
- Replace gaierror with a more descriptive name (this is a DNS error)
else:
user_shell = os.getenv("SHELL")
if not user_shell: user_shell = "/bin/bash"
+ # XXX: scripts specific hack, since mbash doesn't respect the current working directory
+ # When the revolution comes (i.e. $ATHENA_HOMEDIR/Scripts is your Scripts home
+ # directory) this isn't strictly necessary, but we'll probably need to support
+ # web_scripts directories ad infinitum.
+ if user_shell == "/usr/local/bin/mbash": user_shell = "/bin/bash"
while 1:
print
print "ERROR: The merge failed with %d conflicts in these files:" % conflicts
print " * %s" % file
print
print "Please resolve these conflicts (edit and then `git add`), and"
- print "then type 'exit'."
+ print "then type 'exit'. You will now be dropped into a shell whose working"
+ print "directory is %s" % curdir
sh.call(user_shell, "-i", interactive=True)
if sh.eval("git", "ls-files", "--unmerged").strip():
print
if self._async(proc, args, **kwargs):
return proc
stdout, stderr = proc.communicate(kwargs["input"])
+ # can occur if we were doing interactive communication; i.e.
+ # we didn't pass in PIPE.
+ if stdout is None:
+ stdout = ""
+ if stderr is None:
+ stderr = ""
if not kwargs["interactive"]:
if kwargs["strip"]:
self._log(None, stderr)