summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseth <[email protected]>2023-11-15 21:58:01 -0500
committerseth <[email protected]>2023-11-16 03:00:07 +0000
commitc1c916678e0afec308d905c97d9ccd241c8a1edf (patch)
treea7f7f9c7ad2417fe4b990cd9c69d391e7d14d344
parenta4a9353e1c8f902b7d7b3cf74e3e5b129c214330 (diff)
feat: add version command
-rw-r--r--Cargo.toml3
-rw-r--r--parts/derivation.nix6
-rw-r--r--parts/packages.nix2
-rw-r--r--src/api/mod.rs4
-rw-r--r--src/commands/mod.rs1
-rw-r--r--src/commands/version.rs36
-rw-r--r--src/main.rs1
7 files changed, 49 insertions, 4 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 80269b4..015287d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,6 +2,9 @@
name = "teawiebot"
version = "0.1.0"
edition = "2021"
+repository = "https://github.com/getchoo/teawieBot"
+license = "MIT"
+readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
diff --git a/parts/derivation.nix b/parts/derivation.nix
index fb70313..607a606 100644
--- a/parts/derivation.nix
+++ b/parts/derivation.nix
@@ -1,7 +1,7 @@
{
lib,
naersk,
- version,
+ self,
lto ? false,
optimizeSize ? false,
}: let
@@ -27,10 +27,12 @@
in
naersk.buildPackage {
pname = "teawiebot";
- inherit version;
+ version = builtins.substring 0 8 self.lastModifiedDate or "dirty";
src = filterSource ../.;
+ GIT_SHA = builtins.substring 0 7 self.rev or "dirty";
+
RUSTFLAGS =
lib.optionalString lto " -C lto=thin -C embed-bitcode=yes"
+ lib.optionalString optimizeSize " -C codegen-units=1 -C strip=symbols -C opt-level=z";
diff --git a/parts/packages.nix b/parts/packages.nix
index c4113c1..8ca9972 100644
--- a/parts/packages.nix
+++ b/parts/packages.nix
@@ -11,7 +11,7 @@
}: {
packages = {
teawiebot = pkgs.callPackage ./derivation.nix {
- version = builtins.substring 0 8 self.lastModifiedDate or "dirty";
+ inherit self;
naersk = inputs.naersk.lib.${system};
};
diff --git a/src/api/mod.rs b/src/api/mod.rs
index 6224ab1..a1e0e97 100644
--- a/src/api/mod.rs
+++ b/src/api/mod.rs
@@ -3,9 +3,11 @@ use once_cell::sync::Lazy;
pub mod guzzle;
pub mod shiggy;
+pub const USER_AGENT: &str = "teawieBot/0.1.0";
+
pub static REQWEST_CLIENT: Lazy<reqwest::Client> = Lazy::new(|| {
reqwest::Client::builder()
- .user_agent("teawieBot/0.1.0")
+ .user_agent(USER_AGENT)
.build()
.unwrap_or_default()
});
diff --git a/src/commands/mod.rs b/src/commands/mod.rs
index fe536c1..d3a1b36 100644
--- a/src/commands/mod.rs
+++ b/src/commands/mod.rs
@@ -7,3 +7,4 @@ pub mod random_lore;
pub mod random_shiggy;
pub mod random_teawie;
pub mod teawiespam;
+pub mod version;
diff --git a/src/commands/version.rs b/src/commands/version.rs
new file mode 100644
index 0000000..54585b7
--- /dev/null
+++ b/src/commands/version.rs
@@ -0,0 +1,36 @@
+use crate::{Context, Error};
+
+/// get version info
+#[poise::command(slash_command)]
+pub async fn version(ctx: Context<'_>) -> Result<(), Error> {
+ let sha = option_env!("GIT_SHA").unwrap_or("main");
+
+ let revision_url = format!(
+ "[{}]({}/tree/{})",
+ sha,
+ option_env!("CARGO_PKG_REPOSITORY").unwrap_or("https://github.com/getchoo/teawieBot"),
+ sha,
+ );
+
+ let fields = [
+ (
+ "Version:",
+ option_env!("CARGO_PKG_VERSION").unwrap_or("not found"),
+ false,
+ ),
+ ("Revision:", &revision_url, false),
+ ("User Agent:", crate::api::USER_AGENT, false),
+ ];
+
+ ctx.send(|c| {
+ c.embed(|e| {
+ e.title("Vesion Information")
+ .description("powered by poise!")
+ .fields(fields)
+ .color((136, 199, 253))
+ })
+ })
+ .await?;
+
+ Ok(())
+}
diff --git a/src/main.rs b/src/main.rs
index d4914e9..749daae 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -71,6 +71,7 @@ async fn main() {
random_teawie::random_teawie(),
copypasta::copypasta(),
teawiespam::teawiespam(),
+ version::version(),
],
event_handler: |ctx, event, _, data| {
Box::pin(async move {