My user config prefs
1# From https://github.com/nushell/nu_scripts/blob/main/modules/data_extraction/ultimate_extractor.nu
2
3# Function to extract archives with different extensions.
4export def extract [name:string] {
5 let handlers = [ [extension command];
6 ['tar\.bz2|tbz|tbz2' 'tar xvjf']
7 ['tar\.gz|tgz' 'tar xvzf']
8 ['tar\.xz|txz' 'tar xvf']
9 ['tar\.Z' 'tar xvZf']
10 ['bz2' 'bunzip2']
11 ['deb' 'ar x']
12 ['gz' 'gunzip']
13 ['pkg' 'pkgutil --expand']
14 ['rar' 'unrar x']
15 ['tar' 'tar xvf']
16 ['xz' 'xz --decompress']
17 ['zip|war|jar|nupkg' 'unzip']
18 ['Z' 'uncompress']
19 ['7z' '7za x']
20 ]
21 let maybe_handler = ($handlers | where $name =~ $'\.(($it.extension))$')
22 if ($maybe_handler | is-empty) {
23 error make { msg: "unsupported file extension" }
24 } else {
25 let handler = ($maybe_handler | first)
26 nu -c ($handler.command + ' ' + $name)
27 }
28}