53 lines
1.3 KiB
Lua
53 lines
1.3 KiB
Lua
--[[
|
|
Automatically populates the root with windows drives on startup.
|
|
Ctrl+r will add new drives mounted since startup.
|
|
|
|
Drives will only be added if they are not already present in the root.
|
|
|
|
Available at: https://github.com/CogentRedTester/mpv-file-browser/tree/master/addons
|
|
]]
|
|
|
|
local mp = require 'mp'
|
|
local msg = require 'mp.msg'
|
|
local fb = require 'file-browser'
|
|
|
|
-- returns a list of windows drives
|
|
local function get_drives()
|
|
local result = mp.command_native({
|
|
name = 'subprocess',
|
|
playback_only = false,
|
|
capture_stdout = true,
|
|
args = {'fsutil', 'fsinfo', 'drives'}
|
|
})
|
|
if result.status ~= 0 then return msg.error('could not read windows root') end
|
|
|
|
local root = {}
|
|
for drive in result.stdout:gmatch("(%a:)\\") do
|
|
table.insert(root, drive..'/')
|
|
end
|
|
return root
|
|
end
|
|
|
|
-- adds windows drives to the root if they are not already present
|
|
local function import_drives()
|
|
local drives = get_drives()
|
|
|
|
for _, drive in ipairs(drives) do
|
|
fb.register_root_item(drive)
|
|
end
|
|
end
|
|
|
|
local keybind = {
|
|
key = 'Ctrl+r',
|
|
name = 'import_root_drives',
|
|
command = import_drives,
|
|
parser = 'root',
|
|
passthrough = true
|
|
}
|
|
|
|
return {
|
|
api_version = '1.4.0',
|
|
setup = import_drives,
|
|
keybinds = { keybind }
|
|
}
|