nix/home/program/bash/module/Disk.nix

53 lines
1.2 KiB
Nix
Raw Normal View History

2024-04-06 03:03:58 +03:00
{ ... }: {
text = ''
# Show only physical drives info.
function pdf() {
df --si | sed -e '1p' -e '/^\/dev\//!d'
}
# Show total size in SI.
# Current dir by default.
# Usage: tdu [DIRS]
function tdu() {
du -sh --si "''${@}"
}
2024-04-15 17:58:37 +03:00
# Unlock encrypted disk file.
2024-10-04 13:50:06 +03:00
# Usage: funlock <FILE> <DIR>
function funlock() {
if [[ "''${UID}" != 0 ]]; then
_error "Must be root."
return 2
fi
2024-04-15 17:58:37 +03:00
local file="''${1}"
local dir="''${2}"
2024-04-15 17:58:37 +03:00
if [[ "''${dir}" = "" ]]; then
2024-10-04 13:50:06 +03:00
help funlock
return 2
fi
local name=$(parse_alnum "''${file##*/}")
cryptsetup open "''${file}" "''${name}"
mount "/dev/mapper/''${name}" "''${dir}"
2024-04-15 17:58:37 +03:00
}
# Unlock encrypted disk file.
# Usage: unlock <FILE>
# function unlock() {
# _filter() {
# sed -e "s/.*\ a[st]\ //" -e "s/\.$//"
# }
# local file="''${1}"
# local name=$(parse_alnum ''${file} | _filter)
# local loop=$(udisksctl loop-setup -f "''${file}" | _filter)
# local unlock=$(udisksctl unlock -b "''${loop}" | _filter)
# local mount=$(udisksctl mount -b "''${unlock}" | _filter)
# [ -L "./''${name}" ] || ln -s "''${mount}" "./''${name}"
# cd "''${mount}"
# }
2024-04-06 03:03:58 +03:00
'';
}