ranger で選択ファイルを mpc add するコマンド
~/.config/ranger/commands.py に追加すると :mpcadd が使えるようになるでよ。
class mpcadd(Command): """ :mpcadd """ MPC_ROOT = '/home/anekos/data/music/' def execute (self): from os.path import isdir, join, relpath, splitext from os import walk, system from ranger.ext.shell_escape import shell_quote from re import search targets = [] cwd = self.fm.thisdir if len(cwd.marked_items) > 0: targets = cwd.marked_items elif len(self.fm.env.copy) > 0: targets = self.fm.env.copy elif len(cwd.get_selection()) > 0: targets = cwd.get_selection() def add(file): _, ext = splitext(file) if search('^\.(mp3)$', ext): system('mpc add ' + shell_quote(file.replace(self.MPC_ROOT, ''))) for target in targets: if isdir(target.path): for root, dir, files in walk(target.path): for file in sorted(files): add(join(root, file)) else: add(target.path)
もっとうまくやれそうな気がする。