diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..9bda8fb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "dns_transport"] + path = dns_transport + url = https://github.com/Dj-Codeman/doge_transport +[submodule "doge_transport"] + path = doge_transport + url = https://github.com/Dj-Codeman/doge_transport +[submodule "doge_dns"] + path = doge_dns + url = https://github.com/Dj-Codeman/doge_dns diff --git a/Cargo.lock b/Cargo.lock index c92336f..aa56852 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,7 +114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] -name = "doge" +name = "dns-doge" version = "0.2.5-beta" dependencies = [ "ansi_term", diff --git a/README.md b/README.md index bbd7464..1344b3a 100644 --- a/README.md +++ b/README.md @@ -72,23 +72,22 @@ It has colourful output, understands normal command-line argument syntax, suppor Currently: To install dog, you can download a pre-compiled binary, or you can compile it from source. You _**may**_ be able to install dog using your OS’s package manager, depending on your platform. -### Project existence - I am not a rust expert at all, Honestly I'm the opposite, just learning codding. I used [`dog`](https://github.com/ogham/dog) on my arch system and a few random *nix - Laptops that I perpetually fix and break . As such part of this progect will be outside of my skill set or ability to work on currently. Things such as : - *Windows support as a whole - *MACOS support as a whole (I'm never buying a mac so this won't be touched by me) I'll merge PRs if thats you thing - *Docker is magic as far as im concerned. I'm working on learning how to practically use it, but for now I wouldn't hold my breath +Issues: + I am not a rust expert at all, Honestly I'm the opposite, just learning codding. I used [`dog`](https://github.com/ogham/dog) on my arch system and a few random *nix Laptops that I perpetually fix and break . As such part of this progect will be outside of my skill set or ability to work on currently. + For **Windows** I don't intende on installing windows 11 anytime soon, So I most likely won't be adding new windows features + For **Macos** Till i can afford to waste money on a mac, the workflow for building release packages is the only support macos is going to get + For **Docker**, This is magic as far as I'm concerned. While I learn the spells to use it in a meaningful way expect things to be broken If any of these are things you want to see make a PR and I'll read and merge it, Be on the lookout for some potentially dumb questions from me. ### Packages - This is currelty a Work in progress + They exist now !!! $ cargo install dns-doge + $ yay -S dns-doge - @@ -108,21 +107,19 @@ To build, download the source code and run: $ cargo build $ cargo test -- The [just](https://github.com/casey/just) command runner can be used to run some helpful development commands, in a manner similar to `make`. -Run `just --list` to get an overview of what’s available. -- If you are compiling a copy for yourself, be sure to run `cargo build --release` or `just build-release` to benefit from release-mode optimisations. +- If you are compiling a copy for yourself, be sure to run `cargo build --release` or `make build-release` to benefit from release-mode optimisations. Copy the resulting binary, which will be in the `target/release` directory, into a folder in your `$PATH`. `/usr/local/bin` is usually a good choice. - To compile and install the manual pages, you will need [pandoc](https://pandoc.org/). -The `just man` command will compile the Markdown into manual pages, which it will place in the `target/man` directory. +The `make man` command will compile the Markdown into manual pages, which it will place in the `target/man` directory. To use them, copy them into a directory that `man` will read. `/usr/local/share/man` is usually a good choice. ### ~~Container image~~ -#### These may still work but they will be unstable as I might break them. +#### These may still work but they will be ***unstable*** as I might break them. To build the container image of doge, you can use Docker or Kaniko. Here an example using Docker: @@ -137,18 +134,6 @@ To run dog directly, you can then define the following alias: $ alias doge="docker run -it --rm doge" -### End-to-end testing - -doge has an integration test suite written as [Specsheet](https://specsheet.software/) check documents. -If you have a copy installed, you can run: - - $ just xtests - -Specsheet will test the compiled binary by making DNS requests over the network, checking that doge returns the correct results and does not crash. -Note that this will expose your IP address. -For more information, read [the xtests README](xtests/README.md). - - ### Feature toggles doge has three Cargo features that can be switched off to remove functionality. @@ -174,8 +159,6 @@ The list of features that have been disabled can be checked at runtime as part o For documentation on how to use doge, see the dog website: Eventually I will make a new one - - ## Licence doge’s source code is licenced under the [MIT](https://choosealicense.com/licenses/mit/). diff --git a/doge_dns b/doge_dns new file mode 160000 index 0000000..3be3b37 --- /dev/null +++ b/doge_dns @@ -0,0 +1 @@ +Subproject commit 3be3b377f7df1383f7398428c5095d5456829aa7 diff --git a/doge_transport b/doge_transport new file mode 160000 index 0000000..4f1b5f5 --- /dev/null +++ b/doge_transport @@ -0,0 +1 @@ +Subproject commit 4f1b5f5493279116d3f568715bf44546097d81f8 diff --git a/makefile b/makefile index 4db662b..8dc36b1 100644 --- a/makefile +++ b/makefile @@ -27,7 +27,7 @@ check: # Installation of the bin install: - @mv "./target/release/doge" /usr/bin/doge + @cp -v target/release/doge /usr/bin/doge @chmod +x /usr/bin/doge # Targets related to testing