summaryrefslogtreecommitdiff
path: root/lib/thandy/ClientCLI.py
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-11-16 22:47:01 +0000
committerNick Mathewson <nickm@torproject.org>2008-11-16 22:47:01 +0000
commit089508b5dfdeff9bd5345a1527d603d59e1df45d (patch)
tree21bd1568de76d789ff93435508ffcc873838b6a1 /lib/thandy/ClientCLI.py
parent48adf40595f127c2bd167aa6774f4ba67e191c0f (diff)
Support socks.
git-svn-id: file:///home/or/svnrepo/updater/trunk@17295 55e972cd-5a19-0410-ae62-a4d7a52db4cd
Diffstat (limited to 'lib/thandy/ClientCLI.py')
-rw-r--r--lib/thandy/ClientCLI.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/thandy/ClientCLI.py b/lib/thandy/ClientCLI.py
index 7818c6d..9516d1a 100644
--- a/lib/thandy/ClientCLI.py
+++ b/lib/thandy/ClientCLI.py
@@ -12,16 +12,18 @@ import thandy.repository
import thandy.download
import thandy.master_keys
import thandy.packagesys.PackageSystem
+import thandy.socksurls
def update(args):
repoRoot = thandy.util.userFilename("cache")
options, args = getopt.getopt(args, "", [ "repo=", "no-download",
"loop", "no-packagesys",
- "install"])
+ "install", "socks-port="])
download = True
keep_looping = False
use_packagesys = True
install = False
+ socksPort = None
for o, v in options:
if o == '--repo':
@@ -34,12 +36,20 @@ def update(args):
use_packagesys = False
elif o == '--install':
install = True
+ elif o == "--socks-port":
+ socksPort = int(v)
+
+ if socksPort:
+ thandy.socksurls.setSocksProxy("127.0.0.1", socksPort)
repo = thandy.repository.LocalRepository(repoRoot)
packagesys = None
if use_packagesys:
packagesys = thandy.packagesys.PackageSystem.PackageMetasystem.create(repo)
+ # XXXX We could make this loop way smarter. Right now, it doesn't
+ # back off between failures, and it doesn't notice newly downloadable files
+ # until all downloading files are finished.
while True:
hashes = {}
installable = {}
@@ -87,7 +97,8 @@ def update(args):
for f in files:
dj = thandy.download.ThandyDownloadJob(f, repo.getFilename(f),
mirrorlist,
- wantHash=hashes.get(f))
+ wantHash=hashes.get(f),
+ useTor=(socksPort!=None))
def successCb(rp=f):
rf = repo.getRequestedFile(rp)
@@ -111,7 +122,7 @@ def update(args):
def usage():
print "Known commands:"
print " update [--repo=repository] [--no-download] [--loop]"
- print " [--no-packagesys] [--install]"
+ print " [--no-packagesys] [--install] [--socks-port=port]"
sys.exit(1)
def main():