From e109653aebf383f8ac7f6e584791a120fab32180 Mon Sep 17 00:00:00 2001 From: Sokhibjon Orzikulov Date: Mon, 14 Oct 2024 20:18:26 +0500 Subject: [PATCH] nix flake + bumping dep versions --- Cargo.toml | 10 ++-- flake.lock | 61 +++++++++++++++++++++++++ flake.nix | 31 +++++++++++++ nohup.out | 3 ++ shell.nix | 56 +++++++++++++++++++++++ src/telegram/i18n/{i18n.rs => inter.rs} | 2 +- src/telegram/i18n/mod.rs | 2 +- src/telegram/keyboard.rs | 3 +- 8 files changed, 160 insertions(+), 8 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 nohup.out create mode 100644 shell.nix rename src/telegram/i18n/{i18n.rs => inter.rs} (98%) diff --git a/Cargo.toml b/Cargo.toml index dfec841..8d73252 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,16 +24,16 @@ cli = [] full = ["telegram", "string", "cli"] [dependencies] -teloxide = { version = "0.12", optional = true } +teloxide = { version = "0.13", optional = true } url = { version = "2.5.0", optional = true } -tokio = { version = "1.36.0", optional = true } -async-trait = { version = "0.1.77", optional = true } +tokio = { version = "1", optional = true } +async-trait = { version = "0.1", optional = true } toml = { version = "0.8", optional = true } thiserror = "1" [dev-dependencies] -serde = "1.0.196" -serde_json = "1.0.113" +serde = "1" +serde_json = "1" [package.metadata.docs.rs] all-features = true diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..243467a --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..c455dfc --- /dev/null +++ b/flake.nix @@ -0,0 +1,31 @@ +{ + description = "Library of Orzklv"; + + inputs = { + # Too old to work with most libraries + # nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + + # Perfect! + nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; + + # The flake-utils library + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = + { nixpkgs + , flake-utils + , ... + } @ inputs: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + # Nix script formatter + formatter = pkgs.nixpkgs-fmt; + + # Development environment + devShells.default = import ./shell.nix { inherit pkgs; }; + }); +} diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..e9466fd --- /dev/null +++ b/nohup.out @@ -0,0 +1,3 @@ +zed is already running +2024-10-14 20:14:27.398 zed[7057:28144525] +[IMKClient subclass]: chose IMKClient_Modern +2024-10-14 20:14:27.398 zed[7057:28144525] +[IMKInputSession subclass]: chose IMKInputSession_Modern diff --git a/shell.nix b/shell.nix new file mode 100644 index 0000000..55821b1 --- /dev/null +++ b/shell.nix @@ -0,0 +1,56 @@ +{ pkgs ? import {} }: +let + getLibFolder = pkg: "${pkg}/lib"; + getFramwork = pkg: "${pkg}/Library/Frameworks"; + darwinOptions = if pkgs.stdenv.isDarwin then '' + -F${(getFramwork pkgs.darwin.apple_sdk.frameworks.Security)} + -F${(getFramwork pkgs.darwin.apple_sdk.frameworks.CoreFoundation)} + -F${(getFramwork pkgs.darwin.apple_sdk.frameworks.CoreServices)} + -F${(getFramwork pkgs.darwin.apple_sdk.frameworks.SystemConfiguration)} + '' else ""; +in +pkgs.stdenv.mkDerivation { + name = "orzklv"; + + nativeBuildInputs = with pkgs; [ + # LLVM & GCC + gcc + cmake + gnumake + pkg-config + llvmPackages.llvm + llvmPackages.clang + + # Hail the Nix + nixd + nixpkgs-fmt + + # Launch scripts + just + + # Rust + rustc + cargo + clippy + cargo-watch + rust-analyzer + ]; + + buildInputs = with pkgs; [ + openssl + darwin.apple_sdk.frameworks.Security + darwin.apple_sdk.frameworks.CoreServices + darwin.apple_sdk.frameworks.CoreFoundation + darwin.apple_sdk.frameworks.SystemConfiguration + ]; + + # Set Environment Variables + RUST_BACKTRACE = 1; + NIX_LDFLAGS = "-L${(getLibFolder pkgs.libiconv)} ${darwinOptions}"; + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [ + (getLibFolder pkgs.gcc) + (getLibFolder pkgs.libiconv) + (getLibFolder pkgs.llvmPackages.llvm) + ]; +} diff --git a/src/telegram/i18n/i18n.rs b/src/telegram/i18n/inter.rs similarity index 98% rename from src/telegram/i18n/i18n.rs rename to src/telegram/i18n/inter.rs index d575346..13f41e4 100644 --- a/src/telegram/i18n/i18n.rs +++ b/src/telegram/i18n/inter.rs @@ -1,6 +1,6 @@ use super::language::Language; use std::collections::HashMap; -use std::io::BufRead; +// use std::io::BufRead; use crate::telegram::i18n::I18nError; #[derive(Debug, Clone, Default)] diff --git a/src/telegram/i18n/mod.rs b/src/telegram/i18n/mod.rs index b65f0e2..90a6f3a 100644 --- a/src/telegram/i18n/mod.rs +++ b/src/telegram/i18n/mod.rs @@ -1,4 +1,4 @@ -pub mod i18n; +pub mod inter; pub mod language; use thiserror::Error; diff --git a/src/telegram/keyboard.rs b/src/telegram/keyboard.rs index 8b89ba1..fddbb35 100644 --- a/src/telegram/keyboard.rs +++ b/src/telegram/keyboard.rs @@ -1,5 +1,6 @@ use std::fmt::Debug; -use teloxide::types::{InlineKeyboardButton, InlineKeyboardMarkup, WebAppInfo}; +use teloxide::types::WebAppInfo; +use teloxide::types::{InlineKeyboardButton, InlineKeyboardMarkup}; use url::Url; #[derive(Clone, Debug, PartialEq)]