From 92ae649cf6da5ce70ef714a0cef27c303091f47b Mon Sep 17 00:00:00 2001 From: shimun Date: Sat, 26 Sep 2020 18:42:41 +0200 Subject: [PATCH] args --- default.nix | 28 ++++++++++++++-------------- src/main.rs | 12 +++++------- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/default.nix b/default.nix index 3c5435f..8963d6e 100644 --- a/default.nix +++ b/default.nix @@ -1,20 +1,20 @@ +{ pkgs ? import { } +, callPackage ? pkgs.callPackage +, stdenv ? pkgs.stdenv +, name ? "brownpaper" +, src ? (builtins.filterSource (path: type: baseNameOf path != "target") ./.) +}: let - pkgs = import { }; - name = "brownpaper"; - src = ./.; crate2nix_tools = import "${builtins.fetchTarball { url = "https://github.com/kolloch/crate2nix/archive/0.8.0.tar.gz"; sha256 = "17mmf5sqn0fmpqrf52icq92nf1sy5yacwx9vafk43piaq433ba56"; }}/tools.nix" { }; - overrides = pkgs.defaultCrateOverrides // { - libloading = attrs: { - buildInputs = with pkgs; [ pkg-config ]; - }; - brownpaper = attrs: { - buildInputs = with pkgs; [ gmp ]; - }; + overrides = pkgs.defaultCrateOverrides // rec { nettle-sys = attrs: with pkgs; { - buildInputs = [ pkg-config nettle clang ]; + nativeBuildInputs = [ clang nettle pkg-config ]; LIBCLANG_PATH = "${clang.cc.lib}/lib"; }; + sequoia-openpgp = attrs: with pkgs; { + nativeBuildInputs = [ clang gmp pkg-config ]; + LIBCLANG_PATH = "${clang.cc.lib}/lib"; + }; + brownpaper = sequoia-openpgp; # requires gmp as well }; - project = pkgs.callPackage (crate2nix_tools.generatedCargoNix { inherit name; inherit src; }) { defaultCrateOverrides = overrides; }; -in -project.rootCrate.build +in callPackage (crate2nix_tools.generatedCargoNix { inherit name src; }) { inherit pkgs stdenv; defaultCrateOverrides = overrides; } diff --git a/src/main.rs b/src/main.rs index 2d98eca..c2a6650 100644 --- a/src/main.rs +++ b/src/main.rs @@ -27,12 +27,10 @@ use std::iter::Iterator; use std::path::Path; use std::sync::Arc; use std::sync::Mutex; +use std::net::SocketAddr; +use std::env::{args,self}; -#[cfg(not(debug_assertions))] -const STORAGE_DIR: &str = "/snips"; - -#[cfg(debug_assertions)] -const STORAGE_DIR: &str = "/tmp"; +const STORAGE_DIR: &str = "./snips"; lazy_static! { static ref KNOWN_KEYS: Arc> = Arc::new(Mutex::new( @@ -44,7 +42,7 @@ const VERSION: &str = env!("CARGO_PKG_VERSION"); fn handle(req: &mut Request) -> IronResult { println!("{}", req.url); - let storage = SnippetStorage::new(&Path::new(STORAGE_DIR)); + let storage = SnippetStorage::new(&Path::new(&STORAGE_DIR)); let segments: Vec<&str> = req.url.path(); match (&req.method, segments.first()) { (Method::Get, Some(&"version")) => Ok(Response::with((iron::status::Ok, VERSION))), @@ -127,5 +125,5 @@ fn handle(req: &mut Request) -> IronResult { fn main() { let chain = Chain::new(handle); println!("Starting brownpaper: {}", STORAGE_DIR); - Iron::new(chain).http("0.0.0.0:3000").unwrap(); + Iron::new(chain).http(args().skip(1).next().map(|ip| ip.parse::().expect("can't parse socket address")).unwrap_or("0.0.0.0:3000".parse::().unwrap()).to_string().as_str()); }