Compare commits

...

8 Commits

2 changed files with 255 additions and 8 deletions

View File

@@ -26,9 +26,9 @@ The following API endpoints are the ones that will be supported, the currently i
- [x] [DNS Edit Record by Domain and ID](https://porkbun.com/api/json/v3/documentation#DNS%20Edit%20Record%20by%20Domain%20and%20ID) - [x] [DNS Edit Record by Domain and ID](https://porkbun.com/api/json/v3/documentation#DNS%20Edit%20Record%20by%20Domain%20and%20ID)
- [x] [DNS Edit Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Edit%20Record%20by%20Domain,%20Subdomain%20and%20Type) - [x] [DNS Edit Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Edit%20Record%20by%20Domain,%20Subdomain%20and%20Type)
- [x] [DNS Delete Record by Domain and ID](https://porkbun.com/api/json/v3/documentation#DNS%20Delete%20Record%20by%20Domain%20and%20ID) - [x] [DNS Delete Record by Domain and ID](https://porkbun.com/api/json/v3/documentation#DNS%20Delete%20Record%20by%20Domain%20and%20ID)
- [ ] [DNS Delete Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Delete%20Records%20by%20Domain,%20Subdomain%20and%20Type) - [x] [DNS Delete Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Delete%20Records%20by%20Domain,%20Subdomain%20and%20Type)
- [ ] [DNS Retrieve Records by Domain or ID](https://porkbun.com/api/json/v3/documentation#DNS%20Retrieve%20Records%20by%20Domain%20or%20ID) - [x] [DNS Retrieve Records by Domain or ID](https://porkbun.com/api/json/v3/documentation#DNS%20Retrieve%20Records%20by%20Domain%20or%20ID)
- [ ] [DNS Retrieve Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Retrieve%20Records%20by%20Domain,%20Subdomain%20and%20Type) - [x] [DNS Retrieve Records by Domain, Subdomain and Type](https://porkbun.com/api/json/v3/documentation#DNS%20Retrieve%20Records%20by%20Domain,%20Subdomain%20and%20Type)
## Usage ## Usage

View File

@@ -306,10 +306,15 @@ function handle_dns {
handle_show_help_on_error dns_create_record $@ handle_show_help_on_error dns_create_record $@
;; ;;
$DNS_DELETE_RECORD) $HANDLE_DNS_DELETE)
shift shift
handle_show_help_on_error dns_delete_record $@ handle_dns_delete $@
;;
$HANDLE_DNS_LIST)
shift
handle_dns_list $@
;; ;;
*) *)
handle_dns_help handle_dns_help
@@ -326,7 +331,8 @@ function handle_dns_help {
echo "Commands:" echo "Commands:"
echo " $DNS_CREATE_RECORD Create a DNS record" echo " $DNS_CREATE_RECORD Create a DNS record"
echo " $HANDLE_DNS_EDIT Edit DNS record(s)" echo " $HANDLE_DNS_EDIT Edit DNS record(s)"
echo " $DNS_DELETE_RECORD Delete a DNS record" echo " $HANDLE_DNS_DELETE Delete a DNS record"
echo " $HANDLE_DNS_LIST List DNS record(s)"
} }
HANDLE_DNS_EDIT="edit" HANDLE_DNS_EDIT="edit"
@@ -664,7 +670,40 @@ function dns_create_record_help {
echo " The priority of the record for those that support it." echo " The priority of the record for those that support it."
} }
DNS_DELETE_RECORD="delete" HANDLE_DNS_DELETE="delete"
function handle_dns_delete {
case $1 in
$PARAM_HELP_SHORT|$PARAM_HELP)
handle_dns_delete_help
;;
$DNS_DELETE_RECORD)
shift
handle_show_help_on_error dns_delete_record $@
;;
$DNS_DELETE_RECORDS)
shift
handle_show_help_on_error dns_delete_records $@
;;
*)
handle_dns_delete_help
exit 1
;;
esac
}
function handle_dns_delete_help {
echo "Usage: $0 $HANDLE_DNS $HANDLE_DNS_DELETE <command>"
echo
echo "Commands:"
echo " $DNS_DELETE_RECORD Delete a DNS record by Domain and ID"
echo " $DNS_DELETE_RECORDS Delete DNS records by Domain, Subdomain, and Type"
}
DNS_DELETE_RECORD="record"
function dns_delete_record { function dns_delete_record {
while [[ $# -gt 0 ]]; do while [[ $# -gt 0 ]]; do
@@ -693,7 +732,7 @@ function dns_delete_record {
done done
if [[ -z $DOMAIN || -z $ID ]]; then if [[ -z $DOMAIN || -z $ID ]]; then
echo "Missing domain or record id" echo "Missing domain or record id parameters"
exit 1 exit 1
fi fi
@@ -711,6 +750,214 @@ function dns_delete_record_help {
echo " The record id being deleted." echo " The record id being deleted."
} }
DNS_DELETE_RECORDS="records"
function dns_delete_records {
while [[ $# -gt 0 ]]; do
case $1 in
$PARAM_DOMAIN_SHORT|$PARAM_DOMAIN)
DOMAIN="$2"
shift
shift
;;
$PARAM_TYPE_SHORT|$PARAM_TYPE)
TYPE="$2"
shift
shift
;;
$PARAM_NAME_SHORT|$PARAM_NAME)
NAME="$2"
shift
shift
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
shift
;;
esac
done
if [[ -z $DOMAIN || -z $TYPE ]]; then
echo "Missing domain or type parameters"
exit 1
fi
URL="$BASE_URL/dns/deleteByNameType/$DOMAIN/$TYPE"
PAYLOAD=""
if [[ ! -z $NAME ]]; then
URL="$URL/$NAME"
fi
echo $(request "$URL" "$PAYLOAD")
}
function dns_delete_records_help {
echo "Usage: $0 $HANDLE_DNS $HANDLE_DNS_EDIT $DNS_EDIT_RECORDS [OPTIONS]"
echo
echo "Options:"
echo " $PARAM_DOMAIN_SHORT, $PARAM_DOMAIN"
echo " The domain of the record being deleted."
echo " $PARAM_TYPE_SHORT, $PARAM_TYPE"
echo " The type of record being deleted. Valid types are: A, MX, CNAME, ALIAS, TXT, NS, AAAA, SRV, TLSA, CAA"
echo " $PARAM_NAME_SHORT, $PARAM_NAME (optional)"
echo " The subdomain of the record being deleted."
}
HANDLE_DNS_LIST="list"
function handle_dns_list {
case $1 in
$PARAM_HELP_SHORT|$PARAM_HELP)
handle_dns_list_help
;;
$DNS_LIST_RECORD)
shift
handle_show_help_on_error dns_list_record $@
;;
$DNS_LIST_RECORDS)
shift
handle_show_help_on_error dns_list_records $@
;;
*)
handle_dns_list_help
exit 1
;;
esac
}
function handle_dns_list_help {
echo "Usage: $0 $HANDLE_DNS $HANDLE_DNS_LIST <command>"
echo
echo "Commands:"
echo " $DNS_LIST_RECORD List a DNS record by Domain and ID"
echo " $DNS_LIST_RECORDS List DNS records by Domain, Subdomain, and Type"
}
DNS_LIST_RECORD="record"
function dns_list_record {
while [[ $# -gt 0 ]]; do
case $1 in
$PARAM_DOMAIN_SHORT|$PARAM_DOMAIN)
DOMAIN="$2"
shift
shift
;;
$PARAM_ID_SHORT|$PARAM_ID)
ID="$2"
shift
shift
;;
-*|--*)
echo "Unknown option $1"
exit 1
shift
shift
;;
*)
shift
;;
esac
done
if [[ -z $DOMAIN ]]; then
echo "Missing domain parameter"
exit 1
fi
URL="$BASE_URL/dns/retrieve/$DOMAIN"
PAYLOAD=""
if [[ ! -z $ID ]]; then
URL="$URL/$ID"
fi
echo $(request "$URL" "$PAYLOAD")
}
function dns_list_record_help {
echo "Usage: $0 $HANDLE_DNS $HANDLE_DNS_LIST $DNS_LIST_RECORD [OPTIONS]"
echo
echo "Options:"
echo " $PARAM_DOMAIN_SHORT, $PARAM_DOMAIN"
echo " The domain to list records from."
echo " $PARAM_ID_SHORT, $PARAM_ID (optional)"
echo " The ID of the record."
}
DNS_LIST_RECORDS="records"
function dns_list_records {
while [[ $# -gt 0 ]]; do
case $1 in
$PARAM_DOMAIN_SHORT|$PARAM_DOMAIN)
DOMAIN="$2"
shift
shift
;;
$PARAM_TYPE_SHORT|$PARAM_TYPE)
TYPE="$2"
shift
shift
;;
$PARAM_NAME_SHORT|$PARAM_NAME)
NAME="$2"
shift
shift
;;
-*|--*)
echo "Unknown option $1"
exit 1
;;
*)
shift
;;
esac
done
if [[ -z $DOMAIN || -z $TYPE ]]; then
echo "Missing domain or type parameters"
exit 1
fi
URL="$BASE_URL/dns/retrieveByNameType/$DOMAIN/$TYPE"
PAYLOAD=""
if [[ ! -z $NAME ]]; then
URL="$URL/$NAME"
fi
echo $(request "$URL" "$PAYLOAD")
}
function dns_list_records_help {
echo "Usage: $0 $HANDLE_DNS $HANDLE_DNS_LIST $DNS_LIST_RECORDS [OPTIONS]"
echo
echo "Options:"
echo " $PARAM_DOMAIN_SHORT, $PARAM_DOMAIN"
echo " The domain of the records being listed."
echo " $PARAM_TYPE_SHORT, $PARAM_TYPE"
echo " The type of record being listed. Valid types are: A, MX, CNAME, ALIAS, TXT, NS, AAAA, SRV, TLSA, CAA"
echo " $PARAM_NAME_SHORT, $PARAM_NAME (optional)"
echo " The subdomain of the record being listed, not including the domain itself."
}
# endregion # endregion
################################################### ###################################################