Encapsulated path hacks.
diff --git a/infocalypse/devnotes.txt b/infocalypse/devnotes.txt
--- a/infocalypse/devnotes.txt
+++ b/infocalypse/devnotes.txt
@@ -1,3 +1,9 @@
+!!! experimental branch for testing wiki over hg idea !!!
+
+djk20091111
+Remember to test pathhacks under windows. If it works, use it to clean
+up the config and fms import hacks.
+
djk20091003
Added work around for hg-git bug:
http://github.com/schacon/hg-git/issues#issue/51
diff --git a/infocalypse/pathhacks.py b/infocalypse/pathhacks.py
new file mode 100644
--- /dev/null
+++ b/infocalypse/pathhacks.py
@@ -0,0 +1,38 @@
+""" Keep hacks in one place.
+
+ Copyright (C) 2009 Darrell Karbott
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public
+ License as published by the Free Software Foundation; either
+ version 2.0 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Author: djk@isFiaD04zgAgnrEC5XJt1i4IE7AkNPqhBG5bONi6Yks
+"""
+
+import os
+import sys
+
+# REDFLAG: do better
+# HACK: but at least it's explict and encapsulated.
+def add_parallel_sys_path(dir_name):
+ """ Add the directory dir_name to the sys.path.
+
+ REQUIRES: dir_name is in a directory parallel to
+ the this module.
+ """
+ target_dir = os.path.abspath(os.path.join(os.path.dirname(
+ os.path.dirname(__file__)),
+ dir_name))
+ if not target_dir in sys.path:
+ #print "ADDED: ", target_dir
+ sys.path.append(target_dir)
diff --git a/infocalypse/sitecmds.py b/infocalypse/sitecmds.py
--- a/infocalypse/sitecmds.py
+++ b/infocalypse/sitecmds.py
@@ -22,22 +22,16 @@
import os
import shutil
-import sys # REDFLAG: DCI
from mercurial import util
from fcpconnection import FCPError
from fcpclient import FCPClient, get_file_infos, set_index_file
-#------------------------------------------------------------
-# REDFLAG: DCI path hacks
-import validate
-ADD_DIR = os.path.join(os.path.dirname(
- os.path.dirname(os.path.dirname(validate.__file__))),
- 'clean_piki')
-sys.path.append(ADD_DIR)
+# HACK
+from pathhacks import add_parallel_sys_path
+add_parallel_sys_path('fniki')
-#------------------------------------------------------------
import piki
# REDFLAG: DCI deal with loading hacks for config
diff --git a/infocalypse/wikicmds.py b/infocalypse/wikicmds.py
--- a/infocalypse/wikicmds.py
+++ b/infocalypse/wikicmds.py
@@ -22,25 +22,19 @@
import os
import sys
-#------------------------------------------------------------
-# REDFLAG: DCI path hacks
-import validate
-ADD_DIR = os.path.join(os.path.dirname(
- os.path.dirname(os.path.dirname(validate.__file__))),
- 'clean_piki')
-sys.path.append(ADD_DIR)
-#------------------------------------------------------------
-
-from servepiki import serve_wiki
-from piki import create_empty_wiki
from mercurial import util
from config import write_default_config
-# REDFLAG: DCI path hacks
+# HACK
+from pathhacks import add_parallel_sys_path
+add_parallel_sys_path('fniki')
+
+import servepiki
+from piki import create_empty_wiki
+
# piki's required files are in that directory.
-import servepiki
PIKI_WWW_SRC = os.path.dirname(servepiki.__file__)
def execute_wiki(ui_, repo, params):
@@ -52,7 +46,7 @@ def execute_wiki(ui_, repo, params):
if not os.path.exists(os.path.join(repo.root, 'fnwiki.cfg')):
raise util.Abort("Can't read fnwiki.cfg. Did you forget hg " +
"fn-wiki --createconfig?")
- serve_wiki(params['HTTP_PORT'], params['HTTP_BIND'], out_func)
+ servepiki.serve_wiki(params['HTTP_PORT'], params['HTTP_BIND'], out_func)
return
# Hmmmm... some basic UI depends on wikitext. not sure