#!/usr/bin/env python3 # -*- coding: utf-8 -*- # File : command.py # Author : Jeff LANCE # Date : 12.05.2021 # Last Modified Date: 12.05.2021 # Last Modified By : Jeff LANCE from ranger.api.commands import Command class mkcd(Command): """ :mkcd Creates a directory with the name and enters it. """ def execute(self): from os.path import join, expanduser, lexists from os import makedirs import re dirname = join(self.fm.thisdir.path, expanduser(self.rest(1))) if not lexists(dirname): makedirs(dirname) match = re.search("^/|^~[^/]*/", dirname) if match: self.fm.cd(match.group(0)) dirname = dirname[match.end(0) :] for m in re.finditer("[^/]+", dirname): s = m.group(0) if s == ".." or ( s.startswith(".") and not self.fm.settings["show_hidden"] ): self.fm.cd(s) else: ## We force ranger to load content before calling `scout`. self.fm.thisdir.load_content(schedule=False) self.fm.execute_console("scout -ae ^{}$".format(s)) else: self.fm.notify("file/directory exists!", bad=True) class tmsu_tag(Command): """:tmsu_tag Tags the current file with tmsu """ def execute(self): cf = self.fm.thisfile self.fm.run('tmsu tag "{0}" {1}'.format(cf.basename, self.rest(1)))