summaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorKarl Semich <0xloem@gmail.com>2016-06-09 18:08:08 -0400
committerKarl Semich <0xloem@gmail.com>2016-06-09 18:08:08 -0400
commit804aa45fbbaf034b09b0f63ebe75630f02b32052 (patch)
tree20a4b17c529795a18576a104e38a3f9844c09e53 /backend
parentab25cea9c6502c6e923860665ee024f1ad0af1a5 (diff)
downloadstandingwithresilience-804aa45fbbaf034b09b0f63ebe75630f02b32052.tar.gz
standingwithresilience-804aa45fbbaf034b09b0f63ebe75630f02b32052.zip
Convert update.py to use more python
Diffstat (limited to 'backend')
-rw-r--r--backend/auth/freesitemgr/.config (renamed from backend/freesitemgr/.config)0
-rw-r--r--backend/auth/freesitemgr/.gitignore (renamed from backend/freesitemgr/.gitignore)0
-rw-r--r--backend/auth/freesitemgr/Standing With Resilience Public (renamed from backend/freesitemgr/Standing With Resilience Public)137
-rw-r--r--backend/resilient/__init__.py107
-rw-r--r--backend/resilient/freenet.py30
-rwxr-xr-xbackend/update.py148
6 files changed, 305 insertions, 117 deletions
diff --git a/backend/freesitemgr/.config b/backend/auth/freesitemgr/.config
index 23242e6..23242e6 100644
--- a/backend/freesitemgr/.config
+++ b/backend/auth/freesitemgr/.config
diff --git a/backend/freesitemgr/.gitignore b/backend/auth/freesitemgr/.gitignore
index 31d13b9..31d13b9 100644
--- a/backend/freesitemgr/.gitignore
+++ b/backend/auth/freesitemgr/.gitignore
diff --git a/backend/freesitemgr/Standing With Resilience Public b/backend/auth/freesitemgr/Standing With Resilience Public
index 92c4c7f..bd065c5 100644
--- a/backend/freesitemgr/Standing With Resilience Public
+++ b/backend/auth/freesitemgr/Standing With Resilience Public
@@ -5,11 +5,11 @@
name = "Standing With Resilience Public"
dir = "../html"
-uriPriv = "USK@AKL0griFs7T25yw6-JR3Wk7vocvNBelOLg3RwtIL6aTp,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQECAAE/Standing With Resilience Public/5"
-uriPub = "USK@hCLgfaINNSNAl4do-PapEincQP5Lxa72d8mFrzHqzqU,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQACAAE/Standing With Resilience Public/5/"
-updateInProgress = True
-insertingManifest = True
-insertingIndex = False
+uriPriv = "USK@AKL0griFs7T25yw6-JR3Wk7vocvNBelOLg3RwtIL6aTp,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQECAAE/Standing With Resilience Public/6"
+uriPub = "USK@hCLgfaINNSNAl4do-PapEincQP5Lxa72d8mFrzHqzqU,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQACAAE/Standing With Resilience Public/6/"
+updateInProgress = False
+insertingManifest = False
+insertingIndex = True
index = "index.html"
sitemap = "sitemap.html"
mtype = "text/html"
@@ -17,12 +17,100 @@ mtype = "text/html"
# Detailed site contents
files = [
{
+ "mimetype": "application/octet-stream",
+ "hash": "acbaef275e46a7f14c1ef456fff2c8bbe8c84724",
+ "name": ".git/HEAD",
+ "uri": "",
+ "sizebytes": 23,
+ "state": "changed",
+ "path": "../html/.git/HEAD",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "c879df015d97615050afa7b9641e3352a1e701ac",
+ "name": ".git/info/exclude",
+ "uri": "",
+ "sizebytes": 240,
+ "state": "changed",
+ "path": "../html/.git/info/exclude",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "25d587813b49215224a7a793a45ef3ef943acfbb",
+ "name": ".git/info/refs",
+ "uri": "",
+ "sizebytes": 830,
+ "state": "changed",
+ "path": "../html/.git/info/refs",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "12d50a68f3e96240f0dfad5c80e1bb06477756e4",
+ "name": ".git/objects/info/packs",
+ "uri": "",
+ "sizebytes": 54,
+ "state": "changed",
+ "path": "../html/.git/objects/info/packs",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "0d323ed855a92cd783861198b724421fd4acdbb0",
+ "name": ".git/objects/pack/pack-be2270dfe9596c7f6afe3bd427ada432616f9f78.idx",
+ "uri": "",
+ "sizebytes": 5804,
+ "state": "changed",
+ "path": "../html/.git/objects/pack/pack-be2270dfe9596c7f6afe3bd427ada432616f9f78.idx",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "88225bedcbc17d9984ee27e07e059d1863fd1f23",
+ "name": ".git/objects/pack/pack-be2270dfe9596c7f6afe3bd427ada432616f9f78.pack",
+ "uri": "",
+ "sizebytes": 39150,
+ "state": "changed",
+ "path": "../html/.git/objects/pack/pack-be2270dfe9596c7f6afe3bd427ada432616f9f78.pack",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "4e39a3bdfc4b9c16e239ba29448f00e5a4fabc2a",
+ "name": ".git/packed-refs",
+ "uri": "",
+ "sizebytes": 803,
+ "state": "changed",
+ "path": "../html/.git/packed-refs",
+ "id": "",
+ "target": "manifest"
+ },
+ {
+ "mimetype": "application/octet-stream",
+ "hash": "d9427cda09aba1cdde5c69c2b13c905bddb0bc51",
+ "name": ".git/refs/remotes/origin/HEAD",
+ "uri": "",
+ "sizebytes": 32,
+ "state": "changed",
+ "path": "../html/.git/refs/remotes/origin/HEAD",
+ "id": "",
+ "target": "manifest"
+ },
+ {
"mimetype": "text/html",
- "hash": "5cdfef47f51c5342ac4ad6f40750ce68073feac7",
+ "hash": "5cac9ddc5e3a5e68678fe42a42f9cbe96450ce00",
"name": "Freenet/index.html",
"uri": "",
"sizebytes": 2528,
- "state": "idle",
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/Freenet/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|Freenet/index.html",
@@ -30,11 +118,11 @@ files = [
},
{
"mimetype": "text/html",
- "hash": "2e95c9e421f2f02724d7dc1b11a79bcd9dc6553a",
+ "hash": "5f1c62841949ce0b84c55963e3e2dc7e7c9834af",
"name": "Shielding/index.html",
"uri": "",
"sizebytes": 6115,
- "state": "idle",
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/Shielding/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|Shielding/index.html",
@@ -42,11 +130,11 @@ files = [
},
{
"mimetype": "text/html",
- "hash": "787ae2089bf98addf7bae3bfda86adb0f5fc5c20",
+ "hash": "67391e3ea6615bca459dfdc7a03ce66729fd02bf",
"name": "TODO/index.html",
"uri": "",
- "sizebytes": 1385,
- "state": "idle",
+ "sizebytes": 2142,
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/TODO/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|TODO/index.html",
@@ -54,11 +142,11 @@ files = [
},
{
"mimetype": "text/html",
- "hash": "bc4c198b805f15403fe4680f768942e578952552",
+ "hash": "c5e4668d9c81b8019ef95a2603b210fb965f32b3",
"name": "Tech_Savvy/index.html",
"uri": "",
"sizebytes": 1351,
- "state": "idle",
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/Tech_Savvy/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|Tech_Savvy/index.html",
@@ -66,17 +154,28 @@ files = [
},
{
"mimetype": "text/html",
- "hash": "4f430ff6ba065b308eedd854e68202d39e6b4cce",
+ "hash": "a6e409ad8eb6fefd8a5da89fd3ee567437e860d2",
"name": "Technical_Resources/index.html",
"uri": "",
"sizebytes": 1301,
- "state": "idle",
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/Technical_Resources/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|Technical_Resources/index.html",
"target": "manifest"
},
{
+ "mimetype": "text/html",
+ "hash": "5fd73c3c1c927d5467767e2a5dc74498a1d9a1f0",
+ "name": "ZeroNet/index.html",
+ "uri": "",
+ "sizebytes": 2034,
+ "state": "changed",
+ "path": "../html/ZeroNet/index.html",
+ "id": "freesitemgr|Standing With Resilience Public|ZeroNet/index.html",
+ "target": "manifest"
+ },
+ {
"mimetype": "image/x-icon",
"hash": "8d06e9596fe48d7afd629fb4dca33f77deaa3454",
"name": "favicon.ico",
@@ -354,11 +453,11 @@ files = [
},
{
"mimetype": "text/html",
- "hash": "049b8e88e0037e2daee08f01ee7739f909dca955",
+ "hash": "b7683c45f40bf214c0a63022ca70e2b18914651d",
"name": "index.html",
"uri": "CHK@Df82KVE2jZFntgB~bLWgSpZPqvbf1cyYZyHqWlwWryY,mJshNq8d-2L6J9yG0P3bJgU~6vBVeoxg-bZLbk1v~tU,AAMC--8/index.html",
- "sizebytes": 1817,
- "state": "idle",
+ "sizebytes": 1893,
+ "state": "changed",
"path": "/home/gentoo/src/standingwithresilience.branchable.com/html/index.html",
"dda": true,
"id": "freesitemgr|Standing With Resilience Public|index.html",
diff --git a/backend/resilient/__init__.py b/backend/resilient/__init__.py
new file mode 100644
index 0000000..490ff3f
--- /dev/null
+++ b/backend/resilient/__init__.py
@@ -0,0 +1,107 @@
+import os, urllib
+
+__all__ = ["freenet"]
+
+name = 'A Wiki for Targeted Individuals'
+
+backend_path = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
+
+auth_path = os.path.join(backend_path, 'auth')
+html_path = os.path.normpath(os.path.join(backend_path, '../html'))
+wiki_src_path = os.path.normpath(os.path.join(backend_path, '../wiki'))
+git_path = os.path.normpath(os.path.join(backend_path, '../.git'))
+
+
+ssh_config_path = os.path.join(auth_path, "ssh-config")
+
+def url200(url):
+ try:
+ return urllib.urlopen(url).getcode() == 200
+ except IOError:
+ return False
+
+class git:
+ found = (os.system("git status --porcelain") == 0)
+ if not found:
+ print("ERROR: git not found")
+ exit(1)
+
+ def __init__(self, remote, push_remote = None):
+ self.remote = remote
+ if push_remote == None:
+ push_remote = remote
+ self.push_remote = push_remote
+
+ def pull(self):
+ if self.remote == None:
+ return False
+ os.environ["GIT_SSH_COMMAND"] = "ssh -F %s" % ssh_config_path
+ status = os.system("git pull %s master" % self.remote)
+ del os.environ["GIT_SSH_COMMAND"]
+ return status == 0
+
+ def push(self):
+ if self.push_remote == None:
+ return False
+ os.environ["GIT_SSH_COMMAND"] = "ssh -F %s" % ssh_config_path
+ status = os.system("git push %s master" % self.push_remote)
+ del os.environ["GIT_SSH_COMMAND"]
+ return status == 0
+
+
+class ikiwiki:
+ found = (os.system("ikiwiki --version") == 0)
+ if not found:
+ print("WARNING: ikiwiki not found, pages will not be built")
+
+ synced = False
+
+ def push(self):
+ if not ikiwiki.found:
+ return False
+
+ if ikiwiki.synced:
+ return True
+
+ html_git_path = os.path.join(html_path, '.git')
+ os.system("rm -rf '%s'" % html_path)
+ os.system("mkdir -p '%s'" % html_git_path)
+
+ status = os.system("ikiwiki --wikiname '%s' --rebuild '%s' '%s'" % (name.replace("'","'\"'\"'"), wiki_src_path, html_path))
+
+ ikiwiki.synced = status == 0
+ if ikiwiki.synced:
+ os.system('git gc')
+ os.system('git update-server-info')
+ for path in ['objects', 'refs', 'HEAD', 'info', 'packed-refs']:
+ os.system("cp -r '%s' '%s'" % (os.path.join(git_path, path), html_git_path))
+ return ikiwiki.synced
+
+
+class zeronet():
+ running = url200('http://127.0.0.1:43110/1HeLLo4uzjaLetFx6NH3PMwFP3qbRbTf3D')
+ if not running:
+ print("WARNING: ZeroNet not running, won't be used")
+
+ found = 'ZERONETDIR' in os.environ
+ if found:
+ zn_datadir = os.path.join(os.environ['ZERONETDIR'], 'ZeroNet/data')
+ zn_script = os.path.join(os.environ['ZERONETDIR'], 'ZeroNet.sh')
+ found = (os.system("'%s' --version" % zn_script) == 0)
+ if not found:
+ print("WARNING: ZeroNet bundle not found in ZERONETDIR, public zeronet site won't be updated")
+
+ def __init__(self, addr, key):
+ self.addr = addr
+ self.key = key
+
+ def push(self):
+ if not ikiwiki.synced:
+ return False
+ zitedir = os.path.join(zeronet.zn_datadir, self.addr)
+ status = os.system('cp -r %s %s' % (os.path.join(html_path, '.'), os.path.join(zitedir, '.')))
+ if status != 0:
+ return False
+ status = os.system('%s siteSign %s %s' % (zeronet.zn_script, self.addr, self.key))
+ return status == 0
+
diff --git a/backend/resilient/freenet.py b/backend/resilient/freenet.py
new file mode 100644
index 0000000..ea72760
--- /dev/null
+++ b/backend/resilient/freenet.py
@@ -0,0 +1,30 @@
+from resilient import auth_path, git, ikiwiki, url200
+import os
+
+running = url200('http://127.0.0.1:8888/')
+if not running:
+ print("WARNING: freenet not running, changes won't be synced with freenet")
+
+class gitocalypse(git):
+ found = (os.system("git-remote-freenet") == 256)
+ if not found:
+ print("WARNING: gitocalypse not found, changes won't be synced with freenet")
+
+ def __init__(self, pull_remote, push_remote = None):
+ self.remote = pull_remote
+ self.push_remote = push_remote
+
+class freesitemgr():
+ found = (os.system("freesitemgr --version") == 0)
+ if not found:
+ print("WARNING: freesitemgr/pyFreenet not found, public freesite won't be updated")
+
+ def __init__(self):
+ pass
+
+ def push(self):
+ if not ikiwiki.synced:
+ return False
+ config_path = os.path.join(auth_path, 'freesitemgr')
+ status = os.system("freesitemgr -c '%s' -v -r 1 update" % config_path)
+ return status == 0
diff --git a/backend/update.py b/backend/update.py
index ebf82bf..47b05c4 100755
--- a/backend/update.py
+++ b/backend/update.py
@@ -1,128 +1,80 @@
#!/usr/bin/env python2
-import os
-import sys
+import resilient
+import resilient.freenet
-############### Enumerate dependencies
+##################### Instantiate remotes
-found_git = (os.system("git status --porcelain") == 0)
+git_repos = [
+ resilient.git('git://standingwithresilience.branchable.com/'),
+ resilient.git('fairlystable-guest:/srv/git/standingwithresilience')
+]
-if not found_git:
- print("ERROR: git not found")
- exit(1)
+if resilient.freenet.gitocalypse.found and resilient.freenet.running:
+ git_repos.extend([
+ #### public freenet ####
+ resilient.freenet.gitocalypse('freenet://USK@hCLgfaINNSNAl4do-PapEincQP5Lxa72d8mFrzHqzqU,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQACAAE/Standing%20With%20Resilience%20Public.git.R1/0', 'freenet://USK@AKL0griFs7T25yw6-JR3Wk7vocvNBelOLg3RwtIL6aTp,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQECAAE/Standing%20With%20Resilience%20Public.git.R1/0'),
+ #### private freenet ####
+ resilient.freenet.gitocalypse('freenet://USK@PSY0YngeDtGbj60hjEoilQiY9oKzVrptRC0rG4BEVPg,e6ZEjT4KvbsltPBJOeKNpIdty2oGzbLCdk4fsDA5Vdk,AQACAAE/Standing%20With%20Resilience.git.R1/0')
+ ])
-found_ikiwiki = (os.system("ikiwiki --version") == 0)
-found_gitocalypse = (os.system("git-remote-freenet") == 256)
-found_freesitemgr = (os.system("freesitemgr --version") == 0)
-found_zeronet = 'ZERONETDIR' in os.environ
-if found_zeronet:
- zn_datadir = os.path.join(os.environ['ZERONETDIR'], 'ZeroNet/data')
- zn_script = os.path.join(os.environ['ZERONETDIR'], 'ZeroNet.sh')
- found_zeronet = (os.system("'%s' --version" % zn_script) == 0)
-
-if not found_ikiwiki:
- print("WARNING: ikiwiki not found, pages will not be built")
-if not found_gitocalypse:
- print("WARNING: gitocalypse not found, changes won't be synced with freenet")
-if not found_freesitemgr:
- print("WARNING: freesitemgr/pyFreenet not found, public freesite won't be updated")
-if not found_zeronet:
- print("WARNING: ZeroNet not found in ZERONETDIR, public zeronet site won't be updated")
-
-if not (found_ikiwiki or found_gitocalypse or found_freesitemgr):
- print("Changes will still be propagated if branchable is working.")
+zeronet_urls = ['http://bit.no.com:43110']
+if resilient.zeronet.running:
+ zeronet_urls.append('http://127.0.0.1:43110')
+for host in zeronet_urls:
+ git_repos.extend([
+ #### public zeronet ####
+ resilient.git('%s/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4/.git' % host),
+ #### private zeronet ####
+ resilient.git('%s/1L363bqJnCG63SnV83kfV7izZXbmentctD/.git' % host)
+ ])
####################### Download from all
-print(":: Pulling from simple repos ...")
-os.environ["GIT_SSH_COMMAND"] = "ssh -F backend/auth/ssh-config"
-
-status = 0
-status += os.system("git pull git://standingwithresilience.branchable.com/ master")
-
-if status != 0:
- print("WARNING: failed to pull changes from branchable")
- #exit(status)
-
-status += os.system("git pull fairlystable-guest:/srv/git/standingwithresilience master")
+print(":: Pulling from git repos ...")
-if status != 0:
- print("WARNING: failed to pull changes from fairlystable")
- #exit(status)
+for repo in git_repos:
+ repo.pull()
-del os.environ["GIT_SSH_COMMAND"]
+########################### Upload to all
+print(":: Pushing to git repos ...")
-# Pull from zeronet repos
-print(":: Pulling from zeronet repos ...")
-# public zeronet
-os.system("git pull http://127.0.0.1:43110/1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4/.git master")
-# private zeronet
-os.system("git pull http://127.0.0.1:43110/1L363bqJnCG63SnV83kfV7izZXbmentctD/.git master")
+for repo in git_repos:
+ repo.push()
-# Pull from freenet repos
-if found_gitocalypse:
- print(":: Pulling from freenet repos ...")
- # public freenet
- os.system("git pull freenet://USK@hCLgfaINNSNAl4do-PapEincQP5Lxa72d8mFrzHqzqU,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQACAAE/Standing%20With%20Resilience%20Public.git.R1/0 master")
- # private freenet
- os.system("git pull freenet://USK@PSY0YngeDtGbj60hjEoilQiY9oKzVrptRC0rG4BEVPg,e6ZEjT4KvbsltPBJOeKNpIdty2oGzbLCdk4fsDA5Vdk,AQACAAE/Standing%20With%20Resilience.git.R1/0 master")
+############################## Build wiki
+if not resilient.ikiwiki.found:
+ print (":: Not building wiki; missing ikiwiki")
+ exit(0)
+print (":: Building wiki ...")
-######################### Upload to all
-
-print(":: Pushing to simple repos ...")
-os.environ["GIT_SSH_COMMAND"] = "ssh -F backend/auth/ssh-config"
-
-status += os.system("git push git://standingwithresilience.branchable.com/")
-status += os.system("git push fairlystable-guest:/srv/git/standingwithresilience")
-
-del os.environ["GIT_SSH_COMMAND"]
-
+if not resilient.ikiwiki().push():
+ print (":: Exiting due to failure")
+ exit(-1)
-# Push to freenet repos
-if found_gitocalypse:
- print (":: Pushing to freenet repos ...")
- # public freenet
- os.system("git push freenet://USK@AKL0griFs7T25yw6-JR3Wk7vocvNBelOLg3RwtIL6aTp,jjuBPGO~oCByVoZ5f4Bny0Gp-l3kuDOtf3m-QBT4ekA,AQECAAE/Standing%20With%20Resilience%20Public.git.R1/0")
+####################### Instantiate hosts
+hosts = []
-# Build wiki
+if resilient.zeronet.found:
+ hosts.append(resilient.zeronet('1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4', '5JzZACCELsT4bx66qmV9JDaWhEQ6Sx6j7LzeucsxJGA9H7nuoRr'))
-if status != 0:
- print (":: Exiting due to failure")
- exit(status)
+if resilient.freenet.freesitemgr.found and resilient.freenet.running:
+ hosts.append(resilient.freenet.freesitemgr()) # keys for freesitemgr are in auth/freesitemgr
-if not found_ikiwiki:
- print (":: Not building wiki; missing ikiwiki")
- exit(0)
+########################### Upload to all
-print (":: Building wiki ...")
+print (":: Publishing site ...")
-status += os.system("ikiwiki --wikiname 'A Wiki for Targeted Individuals' --rebuild ../wiki ../html")
+for host in hosts:
+ host.push()
-if status != 0:
- print (":: Exiting due to failure")
- exit(status)
-
-if found_zeronet:
- os.system('git update-server-info')
- print (":: Publishing ZeroNet site ...")
- zn_datadir = os.path.join(zn_datadir, '1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4')
- os.system('cp -r ../html/. %s/.' % zn_datadir)
- os.system('mkdir -p %s/.git' % zn_datadir)
- for file in ('objects', 'refs', 'HEAD', 'info', 'packed-refs'):
- os.system('cp -a ../.git/%s %s/.git' % (file, zn_datadir))
- os.system('%s siteSign 1GtQ8bkFkhYtKerSdXHKe1z4j9VTmFR5d4 5JzZACCELsT4bx66qmV9JDaWhEQ6Sx6j7LzeucsxJGA9H7nuoRr' % zn_script)
-
-if found_freesitemgr:
- print (":: Publishing freesite ...")
- status += os.system("freesitemgr -c freesitemgr -v -l freesitemgr.log -r 1 update")
+#########################################
print "Done."
-
-exit(status)