Esempio n. 1
0
 def _extcompare(x, y, rev):
     if rev:
         ret = util.cmp(util.extname(y.name), util.extname(x.name)) 
     else:
         ret = util.cmp(util.extname(x.name), util.extname(y.name)) 
     if ret == 0:
         return util.cmp(y.name, x.name) if rev else util.cmp(x.name, y.name)
     else:
         return ret
Esempio n. 2
0
def _rename():
    """Invoke command line of rename mode."""
    filer = widgets.filer
    cmdline = widgets.cmdline
    if filer.dir.ismark():
        cmdline.start(mode.Replace())
    else:
        cmdline.start(mode.Rename(), filer.file.name, -len(util.extname(filer.file.name))-1)
Esempio n. 3
0
 def loadprograms(self):
     osname = sys.platform
     self.__class__.programs[:] = []
     for path in os.getenv("PATH").split(os.pathsep):
         try:
             files = os.listdir(path)
         except OSError:
             continue
         for f in files:
             if osname == "cygwin":
                 ext = util.extname(f)
                 if ext != ".exe":
                     continue
                 f = f.replace(ext, "")
             self.programs.append(f)
     self.programs.sort()
Esempio n. 4
0
def _unpack2():
    """Unpack file of tar, zip and rar to current directory."""
    ext = util.extname(widgets.filer.file.name)
    cmdline = widgets.cmdline
    if ext == ".gz" :
        cmdline.start(mode.Shell(), "tar xvfz %f -C %D")
    elif ext == ".tgz":
        cmdline.start(mode.Shell(), "tar xvfz %f -C %D")
    elif ext == ".bz2":
        cmdline.start(mode.Shell(), "tar xvfj %f -C %D")
    elif ext == ".tar":
        cmdline.start(mode.Shell(), "tar xvf %f -C %D")
    elif ext == ".rar":
        cmdline.start(mode.Shell(), "rar x %f -C %D")
    elif ext == ".zip":
        cmdline.start(mode.Shell(), "unzip %f -d %D")
    elif ext == ".xpi":
        cmdline.start(mode.Shell(), "unzip %f -d %D")
    elif ext == ".jar":
        cmdline.start(mode.Shell(), "unzip %f -d %D")
Esempio n. 5
0
def _fileviewer():
    """File view by tar, zipinfo, unrar, 7z and Pyful.environs["PAGER"]."""
    ext = util.extname(widgets.filer.file.name)
    pager = Pyful.environs["PAGER"]
    if ".gz" == ext:
        process.spawn("tar tvfz %f | "+ pager)
    elif ".tgz" == ext:
        process.spawn("tar tvfz %f | "+ pager)
    elif ".bz2" == ext:
        process.spawn("tar tvfj %f | "+ pager)
    elif ".tar" == ext:
        process.spawn("tar tvf %f | "+ pager)
    elif ".zip" == ext:
        process.spawn("zipinfo %f | "+ pager)
    elif ".rar" == ext:
        process.spawn("unrar l %f | "+ pager)
    elif ".7z"  == ext:
        process.spawn("7z l %f | "+ pager)
    else:
        process.spawn(pager+" %f")
Esempio n. 6
0
 def get_file_stat(self):
     fstat = ""
     if self.draw_ext and not self.isdir() and not self.islink():
         fstat += " {0}".format(util.extname(self.name))
     if self.draw_user:
         fstat += " {0}".format(self.get_user_name())
     if self.draw_group:
         fstat += " {0}".format(self.get_group_name())
     if self.draw_nlink:
         fstat += " {0:>3}".format(self.stat.st_nlink)
     if self.draw_size:
         if self.isdir():
             fstat += " {0:>7}".format("<DIR>")
         else:
             fstat += " {0:>7}".format(self.get_file_size())
     if self.draw_permission:
         fstat += " {0}".format(self.get_permission())
     if self.draw_mtime:
         fstat += " {0}".format(self.get_mtime())
     return fstat
Esempio n. 7
0
 def input(self, key):
     if self.pager.active:
         self.pager.input(key)
         return
     if self.finder.active:
         if not self.finder.input(key):
             return
     kmap = self.keymap
     f = self.file
     ext = util.extname(f.name)
     if f.marked and (key, ".mark") in kmap:
         kmap[(key, ".mark")]()
     elif f.islink() and (key, ".link") in kmap:
         kmap[(key, ".link")]()
     elif f.isdir() and (key, ".dir") in kmap:
         kmap[(key, ".dir")]()
     elif f.isexec() and (key, ".exec") in kmap:
         kmap[(key, ".exec")]()
     elif ext and (key, ext) in kmap:
         kmap[(key, ext)]()
     else:
         if key in kmap:
             kmap[key]()
Esempio n. 8
0
 def extract(self, source):
     mode = self.tarmodes.get(util.extname(source), "gz")
     try:
         import tarfile
         tar = tarfile.open(source, "r:"+mode)
     except Exception as e:
         message.exception(e)
         raise FilectrlCancel("Exception occurred while `untar'")
     try:
         for info in tar.getmembers():
             if not self.active:
                 raise FilectrlCancel(self.title)
             self.update("Extracting: {0}".format(info.name))
             tar.extract(info, self.dstdir)
             self.notify("Extracted: {0}".format(info.name))
             if info.isdir():
                 self.dirlist.append(info)
     finally:
         for dinfo in reversed(sorted(self.dirlist, key=lambda a: a.name)):
             dirpath = os.path.join(self.dstdir, dinfo.name)
             os.utime(dirpath, (dinfo.mtime, dinfo.mtime))
         self.dirlist[:] = []
         tar.close()