diff --git a/formats/from-cpuinfo.nu b/formats/from-cpuinfo.nu new file mode 100644 index 0000000..dd899a3 --- /dev/null +++ b/formats/from-cpuinfo.nu @@ -0,0 +1,22 @@ +# Convert from contents of /proc/cpuinfo to structured data +export def "from cpuinfo" [] { + lines + | split list '' + | each { + split column ':' + | str trim + | update column1 { + get column1 + | str replace -a -s ' ' '_' + } + | transpose -r -d + | update flags { + get flags + | split row ' ' + } + | update bugs { + get bugs + | split row ' ' + } + } +} diff --git a/formats/from-dmidecode.nu b/formats/from-dmidecode.nu new file mode 100644 index 0000000..80a4fdd --- /dev/null +++ b/formats/from-dmidecode.nu @@ -0,0 +1,36 @@ +# Convert from output of dmidecode to structured data +export def "from dmidecode" [] { + lines + | skip until {|x| + $x starts-with 'Handle' + } + | split list '' + | each {|entry| + let parsed_entry = ( + $entry + | get 0 + | parse 'Handle {handle}, DMI type {type}, {bytes} bytes' + | get 0 + | insert description ($entry|get 1) + | insert values { + if ($entry|length) > 2 { + if ($entry|get 2|str trim) == 'Header and Data:' { + {'header_and_data': ($entry|skip 3|str trim)} + } else { + $entry + | skip 2 + | split column ':' + | str trim + | str downcase column1 + | str replace -a -s ' ' '_' column1 + | transpose -r -d + } + } else { + {} + } + } + ) + + $parsed_entry + } +}