Move the database module to a new crate.
- This way we can share the code between multiple binaries without running the common tests twice. - Fixes #45.
This commit is contained in:
parent
d38b80f26d
commit
d5c4c74656
15
Cargo.toml
15
Cargo.toml
|
@ -4,27 +4,32 @@ version = "0.1.0"
|
|||
authors = ["Kai Michaelis <kai@sequoia-pgp.org>"]
|
||||
build = "build.rs"
|
||||
|
||||
[workspace]
|
||||
members = [
|
||||
"database",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
hagrid-database = { path = "database" }
|
||||
failure = "0.1.5"
|
||||
rocket = "0"
|
||||
rocket_codegen = "0"
|
||||
sequoia-openpgp = { git = "https://gitlab.com/sequoia-pgp/sequoia.git", rev = "e07bb25de0b2291088f88dc5360f3d04f702049c" }
|
||||
multipart = "0"
|
||||
log = "0"
|
||||
rand = "0.5"
|
||||
# rand = "0.5"
|
||||
serde = "1.0"
|
||||
serde_derive = "1.0"
|
||||
serde_json = "1.0"
|
||||
time = "0.1"
|
||||
tempfile = "3.0"
|
||||
parking_lot = "0.6"
|
||||
structopt = "0.2"
|
||||
url = "1.6"
|
||||
hex = "0.3"
|
||||
# hex = "0.3"
|
||||
lettre_email = "0.8"
|
||||
handlebars = "1.1.0"
|
||||
base64 = "0.10"
|
||||
pathdiff = "0.1"
|
||||
# base64 = "0.10"
|
||||
# pathdiff = "0.1"
|
||||
num_cpus = "1.0"
|
||||
fs_extra = "1.0"
|
||||
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
[package]
|
||||
name = "hagrid-database"
|
||||
version = "0.1.0"
|
||||
authors = ["Kai Michaelis <kai@sequoia-pgp.org>"]
|
||||
|
||||
[dependencies]
|
||||
failure = "0.1.5"
|
||||
sequoia-openpgp = { git = "https://gitlab.com/sequoia-pgp/sequoia.git", rev = "e07bb25de0b2291088f88dc5360f3d04f702049c" }
|
||||
multipart = "0"
|
||||
log = "0"
|
||||
rand = "0.5"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_derive = "1.0"
|
||||
serde_json = "1.0"
|
||||
time = "0.1"
|
||||
tempfile = "3.0"
|
||||
parking_lot = "0.6"
|
||||
url = "1.6"
|
||||
hex = "0.3"
|
||||
base64 = "0.10"
|
||||
pathdiff = "0.1"
|
||||
|
||||
[lib]
|
||||
name = "hagrid_database"
|
||||
path = "src/lib.rs"
|
|
@ -11,7 +11,7 @@ use pathdiff::diff_paths;
|
|||
|
||||
//use sequoia_openpgp::armor::{Writer, Kind};
|
||||
|
||||
use database::{Database, Delete, Verify, Query};
|
||||
use {Database, Delete, Verify, Query};
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use Result;
|
||||
|
||||
|
@ -460,8 +460,8 @@ impl Database for Filesystem {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use database::test;
|
||||
use sequoia_openpgp::tpk::TPKBuilder;
|
||||
use test;
|
||||
use openpgp::tpk::TPKBuilder;
|
||||
use tempfile::TempDir;
|
||||
|
||||
#[test]
|
|
@ -1,25 +1,42 @@
|
|||
use parking_lot::MutexGuard;
|
||||
#![feature(proc_macro_hygiene, plugin, decl_macro)]
|
||||
#![recursion_limit = "1024"]
|
||||
#![feature(try_from)]
|
||||
|
||||
use std::convert::TryFrom;
|
||||
use std::io::Cursor;
|
||||
use std::io::Write;
|
||||
use std::path::PathBuf;
|
||||
use std::result;
|
||||
use std::str::FromStr;
|
||||
|
||||
use sequoia_openpgp::{
|
||||
constants::SignatureType, packet::Signature, packet::UserID, parse::Parse,
|
||||
extern crate failure;
|
||||
use failure::Error;
|
||||
use failure::Fallible as Result;
|
||||
#[macro_use] extern crate log;
|
||||
extern crate parking_lot;
|
||||
use parking_lot::MutexGuard;
|
||||
extern crate pathdiff;
|
||||
extern crate rand;
|
||||
extern crate serde;
|
||||
extern crate serde_json;
|
||||
extern crate tempfile;
|
||||
extern crate time;
|
||||
extern crate url;
|
||||
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
use openpgp::{
|
||||
Packet, TPK,
|
||||
PacketPile,
|
||||
armor::{Writer, Kind},
|
||||
constants::SignatureType, packet::Signature, packet::UserID, parse::Parse,
|
||||
packet::Tag,
|
||||
serialize::Serialize,
|
||||
serialize::Serialize as OpenPgpSerialize,
|
||||
};
|
||||
use sequoia_openpgp::PacketPile;
|
||||
|
||||
use std::io::Write;
|
||||
use sequoia_openpgp::armor::{Writer, Kind};
|
||||
use serde::{Serialize, Deserialize, Deserializer, Serializer};
|
||||
|
||||
use serde::{Deserialize, Deserializer, Serializer};
|
||||
use time;
|
||||
pub mod types;
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use Result;
|
||||
|
||||
mod fs;
|
||||
pub use self::fs::Filesystem;
|
||||
|
@ -64,7 +81,7 @@ impl Verify {
|
|||
pub fn new(
|
||||
uid: &UserID, sig: &[Signature], fpr: Fingerprint,
|
||||
) -> Result<Self> {
|
||||
use sequoia_openpgp::serialize::Serialize;
|
||||
use openpgp::serialize::Serialize;
|
||||
|
||||
let mut cur = Cursor::new(Vec::default());
|
||||
uid.serialize(&mut cur)?;
|
||||
|
@ -208,7 +225,7 @@ pub trait Database: Sync + Send {
|
|||
}
|
||||
|
||||
fn tpk_into_bytes(tpk: &TPK) -> Result<Vec<u8>> {
|
||||
use sequoia_openpgp::serialize::Serialize;
|
||||
use openpgp::serialize::Serialize;
|
||||
use std::io::Cursor;
|
||||
|
||||
let mut cur = Cursor::new(Vec::default());
|
||||
|
@ -326,7 +343,7 @@ pub trait Database: Sync + Send {
|
|||
}
|
||||
|
||||
fn merge_or_publish(&self, mut tpk: TPK) -> Result<Vec<(Email, String)>> {
|
||||
use sequoia_openpgp::RevocationStatus;
|
||||
use openpgp::RevocationStatus;
|
||||
|
||||
let fpr = Fingerprint::try_from(tpk.primary().fingerprint())?;
|
||||
let mut all_uids = Vec::default();
|
|
@ -1,7 +1,7 @@
|
|||
use parking_lot::{Mutex, MutexGuard};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use database::{Database, Delete, Verify, Query};
|
||||
use {Database, Delete, Verify, Query};
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use Result;
|
||||
|
||||
|
@ -160,8 +160,8 @@ impl Memory {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use database::test;
|
||||
use sequoia_openpgp::tpk::TPKBuilder;
|
||||
use test;
|
||||
use openpgp::tpk::TPKBuilder;
|
||||
|
||||
#[test]
|
||||
fn new() {
|
|
@ -1,6 +1,6 @@
|
|||
use std::path::PathBuf;
|
||||
|
||||
use database::{Database, Delete, Filesystem, Memory, Verify, Query};
|
||||
use {Database, Delete, Filesystem, Memory, Verify, Query};
|
||||
use Result;
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use parking_lot::MutexGuard;
|
|
@ -17,9 +17,9 @@
|
|||
use std::convert::TryFrom;
|
||||
use std::str::FromStr;
|
||||
|
||||
use database::Database;
|
||||
use sequoia_openpgp::tpk::{TPKBuilder, UserIDBinding};
|
||||
use sequoia_openpgp::{
|
||||
use Database;
|
||||
use openpgp::tpk::{TPKBuilder, UserIDBinding};
|
||||
use openpgp::{
|
||||
constants::ReasonForRevocation, constants::SignatureType, packet::UserID,
|
||||
parse::Parse, Packet, PacketPile, RevocationStatus, TPK,
|
||||
};
|
|
@ -2,7 +2,7 @@ use std::convert::TryFrom;
|
|||
use std::result;
|
||||
use std::str::FromStr;
|
||||
|
||||
use sequoia_openpgp::{self, packet::UserID};
|
||||
use openpgp::packet::UserID;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
use {Error, Result};
|
||||
|
|
@ -9,42 +9,22 @@
|
|||
#![recursion_limit = "1024"]
|
||||
#![feature(try_from)]
|
||||
|
||||
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
use std::thread;
|
||||
use std::cmp;
|
||||
|
||||
extern crate failure;
|
||||
use failure::Error;
|
||||
use failure::Fallible as Result;
|
||||
|
||||
extern crate num_cpus;
|
||||
|
||||
extern crate serde;
|
||||
#[macro_use]
|
||||
extern crate serde_derive;
|
||||
extern crate serde_json;
|
||||
|
||||
extern crate hex;
|
||||
extern crate time;
|
||||
extern crate url;
|
||||
|
||||
extern crate sequoia_openpgp;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate parking_lot;
|
||||
extern crate rand;
|
||||
extern crate tempfile;
|
||||
extern crate pathdiff;
|
||||
|
||||
extern crate sequoia_openpgp as openpgp;
|
||||
use openpgp::Packet;
|
||||
use openpgp::parse::{PacketParser, PacketParserResult, Parse};
|
||||
|
||||
mod database;
|
||||
mod types;
|
||||
|
||||
extern crate hagrid_database as database;
|
||||
use database::{Database, Filesystem};
|
||||
|
||||
fn main() {
|
||||
|
|
|
@ -6,7 +6,7 @@ use lettre_email::EmailBuilder;
|
|||
|
||||
use serde::Serialize;
|
||||
|
||||
use types::Email;
|
||||
use database::types::Email;
|
||||
use Result;
|
||||
|
||||
#[derive(Serialize, Clone)]
|
||||
|
|
11
src/main.rs
11
src/main.rs
|
@ -3,7 +3,6 @@
|
|||
#![feature(try_from)]
|
||||
|
||||
extern crate failure;
|
||||
use failure::Error;
|
||||
use failure::Fallible as Result;
|
||||
|
||||
extern crate serde;
|
||||
|
@ -11,7 +10,6 @@ extern crate serde;
|
|||
extern crate serde_derive;
|
||||
extern crate serde_json;
|
||||
|
||||
extern crate hex;
|
||||
extern crate time;
|
||||
extern crate url;
|
||||
|
||||
|
@ -21,26 +19,19 @@ extern crate multipart;
|
|||
extern crate rocket_contrib;
|
||||
|
||||
extern crate sequoia_openpgp;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate base64;
|
||||
extern crate handlebars;
|
||||
extern crate lettre;
|
||||
extern crate lettre_email;
|
||||
extern crate parking_lot;
|
||||
extern crate rand;
|
||||
extern crate structopt;
|
||||
extern crate tempfile;
|
||||
extern crate pathdiff;
|
||||
|
||||
#[cfg(test)]
|
||||
extern crate fs_extra;
|
||||
#[cfg(test)]
|
||||
extern crate regex;
|
||||
|
||||
mod database;
|
||||
extern crate hagrid_database as database;
|
||||
mod mail;
|
||||
mod types;
|
||||
mod web;
|
||||
|
||||
use std::path::PathBuf;
|
||||
|
|
|
@ -17,8 +17,8 @@ mod upload;
|
|||
use mail;
|
||||
|
||||
use database::{Database, Polymorphic, Query};
|
||||
use database::types::{Email, Fingerprint, KeyID};
|
||||
use Result;
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use Opt;
|
||||
|
||||
use std::result;
|
||||
|
@ -26,7 +26,7 @@ use std::str::FromStr;
|
|||
|
||||
mod queries {
|
||||
use std::fmt;
|
||||
use types::{Email, Fingerprint, KeyID};
|
||||
use database::types::{Email, Fingerprint, KeyID};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum Hkp {
|
||||
|
|
Loading…
Reference in New Issue