indentation'ın ağzına iki tokat vurasım var.

This commit is contained in:
A. Murat Eren
2005-06-09 11:23:32 +00:00
parent 016c64fab3
commit 1c828e424e
+45 -45
View File
@@ -12,69 +12,69 @@ from sys import exit
import pisiconfig import pisiconfig
class FetchError (Exception): class FetchError (Exception):
pass pass
class Fetcher: class Fetcher:
"""Yet another Pisi tool for fetching files from various sources..""" """Yet another Pisi tool for fetching files from various sources.."""
def __init__(self, uri): def __init__(self, uri):
self.uri = uri self.uri = uri
self.filedest = pisiconfig.archives_dir self.filedest = pisiconfig.archives_dir
self.scheme = "file" self.scheme = "file"
self.netloc = "" self.netloc = ""
self.filepath = "" self.filepath = ""
self.filename = "" self.filename = ""
def fetch (self): def fetch (self):
from string import split from string import split
u = urlparse.urlparse(self.uri) u = urlparse.urlparse(self.uri)
self.scheme, self.netloc, self.filepath = u[0], u[1], u[2] self.scheme, self.netloc, self.filepath = u[0], u[1], u[2]
self.filename = split(self.filepath, "/")[-1:][0] self.filename = split(self.filepath, "/")[-1:][0]
if self.filename == "": if self.filename == "":
self.err("filename error") self.err("filename error")
if os.access(self.filedest, os.W_OK) == False: if os.access(self.filedest, os.W_OK) == False:
self.err("no perm to write destination") self.err("no perm to write destination")
scheme_err = lambda: self.err("unexpected scheme (expecting file, http or ftp)") scheme_err = lambda: self.err("unexpected scheme (expecting file, http or ftp)")
actions = { actions = {
'file': self.fetchLocalFile, 'file': self.fetchLocalFile,
'http': self.fetchRemoteFile, 'http': self.fetchRemoteFile,
'ftp' : self.fetchRemoteFile 'ftp' : self.fetchRemoteFile
}; actions.get(self.scheme, scheme_err)() }; actions.get(self.scheme, scheme_err)()
def fetchLocalFile (self): def fetchLocalFile (self):
from shutil import copyfile from shutil import copyfile
if os.access(self.filepath, os.F_OK) == False: if os.access(self.filepath, os.F_OK) == False:
self.err("no such file or no perm to read") self.err("no such file or no perm to read")
copyfile(self.filepath, self.filedest + "/" + self.filename) copyfile(self.filepath, self.filedest + "/" + self.filename)
def fetchRemoteFile (self): def fetchRemoteFile (self):
try: try:
file = urllib.urlopen(self.uri) file = urllib.urlopen(self.uri)
except IOError, e: except IOError, e:
self.err(e.strerror[1]) self.err(e.strerror[1])
dest = open(self.filedest + "/" + self.filename , "w") dest = open(self.filedest + "/" + self.filename , "w")
dest.write(file.read()) dest.write(file.read())
def err (self, error): def err (self, error):
raise FetchError, error raise FetchError, error
def usage(): def usage():
print "Usage: %s URI" % argv[0] print "Usage: %s URI" % argv[0]
def main(): def main():
if len(argv) != 2: if len(argv) != 2:
usage() usage()
exit(1) exit(1)
f = Fetcher(argv[1]) f = Fetcher(argv[1])
f.fetch() f.fetch()
if __name__ == "__main__": if __name__ == "__main__":
main() main()