turbot / steampipe-export

Steampipe Export is a zero-ETL CLI to fetch data from cloud services and APIs. Hundreds of plugins with thousands of documented examples.
https://steampipe.io
Apache License 2.0
8 stars 1 forks source link

Fix issue where the CLI returned `<nil>` in case of NULL values in the CSV output. Closes #70 #71

Closed pskrbasu closed 3 months ago

pskrbasu commented 3 months ago

prev output:

 steampipe_export_net net_dns_record --where 'domain="steampipe.io"'
_ctx,dns_server,domain,expire,ip,minimum,priority,refresh,retry,serial,tag,target,ttl,type,value
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,76.76.21.21,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,300,A,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,5,<nil>,<nil>,<nil>,<nil>,alt1.aspmx.l.google.com.,300,MX,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,10,<nil>,<nil>,<nil>,<nil>,alt3.aspmx.l.google.com.,300,MX,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,1,<nil>,<nil>,<nil>,<nil>,aspmx.l.google.com.,300,MX,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,5,<nil>,<nil>,<nil>,<nil>,alt2.aspmx.l.google.com.,300,MX,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,10,<nil>,<nil>,<nil>,<nil>,alt4.aspmx.l.google.com.,300,MX,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,ns-1455.awsdns-53.org.,21600,NS,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,ns-600.awsdns-11.net.,21600,NS,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,ns-128.awsdns-16.com.,21600,NS,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,<nil>,ns-1628.awsdns-11.co.uk.,21600,NS,<nil>
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",<nil>,steampipe.io,1209600,<nil>,86400,<nil>,7200,900,1,<nil>,ns-128.awsdns-16.com.,900,SOA,<nil>

fixed output:

steampipe_export_net net_dns_record --where 'domain="steampipe.io"'
_ctx,dns_server,domain,expire,ip,minimum,priority,refresh,retry,serial,tag,target,ttl,type,value
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,76.76.21.21,,,,,,,,268,A,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,10,,,,,alt3.aspmx.l.google.com.,300,MX,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,10,,,,,alt4.aspmx.l.google.com.,300,MX,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,5,,,,,alt2.aspmx.l.google.com.,300,MX,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,5,,,,,alt1.aspmx.l.google.com.,300,MX,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,1,,,,,aspmx.l.google.com.,300,MX,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,,,,,,ns-1455.awsdns-53.org.,21174,NS,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,,,,,,ns-128.awsdns-16.com.,21174,NS,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,,,,,,ns-600.awsdns-11.net.,21174,NS,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,,,,,,,,,ns-1628.awsdns-11.co.uk.,21174,NS,
"{""connection_name"":""net"",""steampipe"":{""sdk_version"":""5.8.0""}}",,steampipe.io,1209600,,86400,,7200,900,1,,ns-128.awsdns-16.com.,900,SOA,

corresponding json:

[{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": "76.76.21.21",
    "minimum": null,
    "priority": null,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": null,
    "ttl": 228,
    "type": "A",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": 5,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "alt2.aspmx.l.google.com.",
    "ttl": 300,
    "type": "MX",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": 10,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "alt4.aspmx.l.google.com.",
    "ttl": 300,
    "type": "MX",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": 10,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "alt3.aspmx.l.google.com.",
    "ttl": 300,
    "type": "MX",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": 1,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "aspmx.l.google.com.",
    "ttl": 300,
    "type": "MX",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": 5,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "alt1.aspmx.l.google.com.",
    "ttl": 300,
    "type": "MX",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": null,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "ns-1628.awsdns-11.co.uk.",
    "ttl": 21600,
    "type": "NS",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": null,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "ns-128.awsdns-16.com.",
    "ttl": 21600,
    "type": "NS",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": null,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "ns-600.awsdns-11.net.",
    "ttl": 21600,
    "type": "NS",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": null,
    "ip": null,
    "minimum": null,
    "priority": null,
    "refresh": null,
    "retry": null,
    "serial": null,
    "tag": null,
    "target": "ns-1455.awsdns-53.org.",
    "ttl": 21600,
    "type": "NS",
    "value": null
},{
    "_ctx": "{\"connection_name\":\"net\",\"steampipe\":{\"sdk_version\":\"5.8.0\"}}",
    "dns_server": null,
    "domain": "steampipe.io",
    "expire": 1209600,
    "ip": null,
    "minimum": 86400,
    "priority": null,
    "refresh": 7200,
    "retry": 900,
    "serial": 1,
    "tag": null,
    "target": "ns-128.awsdns-16.com.",
    "ttl": 900,
    "type": "SOA",
    "value": null
}]