refactor: improve code quality and add automation
- Remove unnecessary return statement in auth module - Comment out unused 'code' field in ResponseError struct - Improve readme formatting with proper markdown - Update dependencies in Cargo.lock - Add Makefile with DNS record update automation commands
This commit is contained in:
1034
Cargo.lock
generated
1034
Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
5
Makefile
Normal file
5
Makefile
Normal file
@@ -0,0 +1,5 @@
|
||||
update:
|
||||
cargo run delete --record-type a --domain publicmatt.com --name "@"
|
||||
curl ipinfo.io/ip | xargs -I {} cargo run update --record-type a --domain publicmatt.com --name "@" --data {}
|
||||
cargo run delete --record-type a --domain publicmatt.com --name "*"
|
||||
curl ipinfo.io/ip | xargs -I {} cargo run update --record-type a --domain publicmatt.com --name "*" --data {}
|
||||
14
readme.md
14
readme.md
@@ -1,18 +1,21 @@
|
||||
# GoDaddy DDNS
|
||||
|
||||

|
||||
|
||||
## What is this?
|
||||
|
||||
It's a Rust application to update GoDaddy DNS Records via REST API.
|
||||
|
||||
## Usage
|
||||
It order for the application to work, there needs to be:
|
||||
|
||||
It order for the application to work, there needs to be:
|
||||
|
||||
* Environment variables:
|
||||
* `DOMAIN` - The domain to update
|
||||
* `KEY` - GoDaddy API Key
|
||||
* `SECRET` - GoDaddy API SECRET
|
||||
|
||||
Info about how to generate the **KEY** and the **SECRET** can be found here: https://developer.godaddy.com/getstarted
|
||||
Info about how to generate the **KEY** and the **SECRET** can be found here: <https://developer.godaddy.com/getstarted>
|
||||
|
||||
* A file called `records.json` placed in `$HOME/.godaddy-ddns` with the following structure:
|
||||
|
||||
@@ -36,10 +39,10 @@ Info about how to generate the **KEY** and the **SECRET** can be found here: htt
|
||||
}
|
||||
```
|
||||
|
||||
### Fields of interest
|
||||
### Fields of interest
|
||||
|
||||
* name: `{string}` - Name of the record.
|
||||
* record_type: `{string}` - Type of the record (A, AAAA, CAA, CNAME, MX, NS, SRV, TXT).
|
||||
* record_type: `{string}` - Type of the record (A, AAAA, CAA, CNAME, MX, NS, SRV, TXT).
|
||||
* data: `{string}` (optional) - Value of the record. (Useful in case of a hard-coded record or interpolation)
|
||||
* interpolate: `{boolean}` (optional) - When set to true, the application will write the current ip in the {ip} tag of the data field.
|
||||
|
||||
@@ -64,6 +67,3 @@ Example of use (with a given IP of 8.8.8.8) :
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,6 @@ pub struct Auth {
|
||||
impl Auth {
|
||||
pub fn as_header(&self) -> String {
|
||||
let header = format!("sso-key {}:{}", self.key, self.secret);
|
||||
return header;
|
||||
header
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ pub enum Api {
|
||||
|
||||
#[derive(Deserialize, Debug)]
|
||||
pub struct ResponseError {
|
||||
pub code: String,
|
||||
// pub code: String,
|
||||
pub message: String,
|
||||
pub fields: Vec<ResponseField>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user