From 5be8e3148380f58af46614aa21e568f1221d1f50 Mon Sep 17 00:00:00 2001 From: mysticmomba Date: Thu, 24 Sep 2026 09:07:31 -0400 Subject: [PATCH 1/7] feat: Added changelog --- CHANGELOG.md | 1 + cliff.toml | 94 +++++++++++++++++++++++++++++ src-tauri/Cargo.lock | 41 +++++++++++++ src-tauri/Cargo.toml | 1 + src-tauri/src/commands/changelog.rs | 16 +++++ src-tauri/src/commands/mod.rs | 1 + src-tauri/src/lib.rs | 1 + src-tauri/tauri.conf.json | 3 +- src/index.html | 11 ++++ src/main.js | 37 ++++++++++++ src/styles.css | 62 +++++++++++++++++++ 11 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md create mode 100644 cliff.toml create mode 100644 src-tauri/src/commands/changelog.rs diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..483e508 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ +## [0.1.0] - 2026-09-23 diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 0000000..a18fc20 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,94 @@ +# git-cliff ~ configuration file +# https://git-cliff.org/docs/configuration + + +[changelog] +# A Tera template to be rendered for each release in the changelog. +# See https://keats.github.io/tera/docs/#introduction +body = """ +{% if version %}\ + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} +{% else %}\ + ## [unreleased] +{% endif %}\ +{% for group, commits in commits | group_by(attribute="group") %} + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %} + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | upper_first }}\ + {% endfor %} +{% endfor %} +""" +# Remove leading and trailing whitespaces from the changelog's body. +trim = true +# Render body even when there are no releases to process. +render_always = true +# An array of regex based postprocessors to modify the changelog. +postprocessors = [ + # Replace the placeholder with a URL. + #{ pattern = '', replace = "https://github.com/orhun/git-cliff" }, +] +# render body even when there are no releases to process +# render_always = true +# output file path +# output = "test.md" + +[git] +# Parse commits according to the conventional commits specification. +# See https://www.conventionalcommits.org +conventional_commits = true +# Exclude commits that do not match the conventional commits specification. +filter_unconventional = true +# Require all commits to be conventional. +# Takes precedence over filter_unconventional. +require_conventional = false +# Split commits on newlines, treating each line as an individual commit. +split_commits = false +# An array of regex based parsers to modify commit messages prior to further processing. +commit_preprocessors = [ + # Replace issue numbers with link templates to be updated in `changelog.postprocessors`. + #{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](/issues/${2}))"}, + # Check spelling of the commit message using https://github.com/crate-ci/typos. + # If the spelling is incorrect, it will be fixed automatically. + #{ pattern = '.*', replace_command = 'typos --write-changes -' }, +] +# Prevent commits that are breaking from being excluded by commit parsers. +protect_breaking_commits = false +# An array of regex based parsers for extracting data from the commit message. +# Assigns commits to groups. +# Optionally sets the commit's scope and can decide to exclude commits from further processing. +commit_parsers = [ + { message = "^feat", group = "๐Ÿš€ Features" }, + { message = "^fix", group = "๐Ÿ› Bug Fixes" }, + { message = "^doc", group = "๐Ÿ“š Documentation" }, + { message = "^perf", group = "โšก Performance" }, + { message = "^refactor", group = "๐Ÿšœ Refactor" }, + { message = "^style", group = "๐ŸŽจ Styling" }, + { message = "^test", group = "๐Ÿงช Testing" }, + { message = "^chore\\(release\\): prepare for", skip = true }, + { message = "^chore\\(deps.*\\)", skip = true }, + { message = "^chore\\(pr\\)", skip = true }, + { message = "^chore\\(pull\\)", skip = true }, + { message = "^chore|^ci", group = "โš™๏ธ Miscellaneous Tasks" }, + { body = ".*security", group = "๐Ÿ›ก๏ธ Security" }, + { message = "^revert", group = "โ—€๏ธ Revert" }, + { message = ".*", group = "๐Ÿ’ผ Other" }, +] +# Exclude commits that are not matched by any commit parser. +filter_commits = false +# Fail on a commit that is not matched by any commit parser. +fail_on_unmatched_commit = false +# An array of link parsers for extracting external references, and turning them into URLs, using regex. +link_parsers = [] +# Include only the tags that belong to the current branch. +use_branch_tags = false +# Order releases topologically instead of chronologically. +topo_order = false +# Order commits topologically instead of chronologically. +topo_order_commits = true +# Order of commits in each group/release within the changelog. +# Allowed values: newest, oldest +sort_commits = "oldest" +# Process submodules commits +recurse_submodules = false diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 410e26b..1deba72 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -58,6 +58,7 @@ dependencies = [ "libc", "open", "ping-async", + "pulldown-cmark", "reqwest 0.12.28", "serde", "serde_json", @@ -1367,6 +1368,15 @@ dependencies = [ "version_check", ] +[[package]] +name = "getopts" +version = "0.2.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe4fbac503b8d1f88e6676011885f34b7174f46e59956bba534ba83abded4df" +dependencies = [ + "unicode-width", +] + [[package]] name = "getrandom" version = "0.2.17" @@ -3006,6 +3016,25 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "pulldown-cmark" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" +dependencies = [ + "bitflags 2.13.2", + "getopts", + "memchr", + "pulldown-cmark-escape", + "unicase", +] + +[[package]] +name = "pulldown-cmark-escape" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "007d8adb5ddab6f8e3f491ac63566a7d5002cc7ed73901f72057943fa71ae1ae" + [[package]] name = "quick-xml" version = "0.42.0" @@ -4738,6 +4767,12 @@ dependencies = [ "unic-common", ] +[[package]] +name = "unicase" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" + [[package]] name = "unicode-ident" version = "1.0.26" @@ -4750,6 +4785,12 @@ version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + [[package]] name = "untrusted" version = "0.9.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3aadae9..323f99e 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -33,6 +33,7 @@ csv = "1" open = "5.4.4" reqwest = { version = "0.12", features = ["json"] } libc = "0.2.189" +pulldown-cmark = { version = "0.13.4", features = ["html"] } [target.'cfg(windows)'.dependencies] is_elevated = "0.1" diff --git a/src-tauri/src/commands/changelog.rs b/src-tauri/src/commands/changelog.rs new file mode 100644 index 0000000..cc7df29 --- /dev/null +++ b/src-tauri/src/commands/changelog.rs @@ -0,0 +1,16 @@ +use pulldown_cmark::{Options, Parser, html}; + +const CHANGELOG_MD: &str = include_str!("../../../CHANGELOG.md"); + +#[tauri::command] +pub async fn get_changelog() -> Result { + let options = Options::ENABLE_HEADING_ATTRIBUTES + | Options::ENABLE_STRIKETHROUGH + | Options::ENABLE_TABLES; + + let parser = Parser::new_ext(CHANGELOG_MD, options); + let mut html_output = String::new(); + html::push_html(&mut html_output, parser); + + Ok(html_output) +} \ No newline at end of file diff --git a/src-tauri/src/commands/mod.rs b/src-tauri/src/commands/mod.rs index 10e5871..a4c75eb 100644 --- a/src-tauri/src/commands/mod.rs +++ b/src-tauri/src/commands/mod.rs @@ -1,4 +1,5 @@ pub mod actions; +pub mod changelog; pub mod export; pub mod monitor; pub mod nmap; diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 6cbb804..8a6c46c 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -31,6 +31,7 @@ pub fn run() { commands::monitor::monitor_stop, commands::updater::check_for_update, commands::actions::check_privileges, + commands::changelog::get_changelog, ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 294eae2..460f7c4 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -10,7 +10,7 @@ "withGlobalTauri": true, "windows": [ { - "title": "argus", + "title": "Argus", "width": 800, "height": 600 } @@ -22,6 +22,7 @@ "bundle": { "active": true, "targets": "all", + "copyright": "Copyright \u00A9 2026 James Brotosky. Licensed under AGPLv3. All rights reserved.", "windows": { "webviewInstallMode": { "type": "embedBootstrapper" diff --git a/src/index.html b/src/index.html index 4e5a390..438a758 100644 --- a/src/index.html +++ b/src/index.html @@ -199,6 +199,7 @@
Argus + unprivileged
@@ -212,6 +213,16 @@
+ +