mirror of
https://codeberg.org/hyperreal/nushell-config
synced 2024-11-25 12:23:42 +01:00
29 lines
1.2 KiB
Plaintext
29 lines
1.2 KiB
Plaintext
|
# From https://github.com/nushell/nu_scripts/blob/main/modules/data_extraction/ultimate_extractor.nu
|
||
|
|
||
|
# Function to extract archives with different extensions.
|
||
|
export def extract [name:string] {
|
||
|
let handlers = [ [extension command];
|
||
|
['tar\.bz2|tbz|tbz2' 'tar xvjf']
|
||
|
['tar\.gz|tgz' 'tar xvzf']
|
||
|
['tar\.xz|txz' 'tar xvf']
|
||
|
['tar\.Z' 'tar xvZf']
|
||
|
['bz2' 'bunzip2']
|
||
|
['deb' 'ar x']
|
||
|
['gz' 'gunzip']
|
||
|
['pkg' 'pkgutil --expand']
|
||
|
['rar' 'unrar x']
|
||
|
['tar' 'tar xvf']
|
||
|
['xz' 'xz --decompress']
|
||
|
['zip|war|jar|nupkg' 'unzip']
|
||
|
['Z' 'uncompress']
|
||
|
['7z' '7za x']
|
||
|
]
|
||
|
let maybe_handler = ($handlers | where $name =~ $'\.(($it.extension))$')
|
||
|
if ($maybe_handler | is-empty) {
|
||
|
error make { msg: "unsupported file extension" }
|
||
|
} else {
|
||
|
let handler = ($maybe_handler | first)
|
||
|
nu -c ($handler.command + ' ' + $name)
|
||
|
}
|
||
|
}
|