Skip to content

Commit 1d3db0a

Browse files
committed
Add a simple redirector server for rustdocs
1 parent 93c479c commit 1d3db0a

File tree

5 files changed

+300
-0
lines changed

5 files changed

+300
-0
lines changed

Cargo.lock

Lines changed: 142 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ hyper = "0.9.6"
1818
semver = "0.2.2"
1919
slug = "0.1.1"
2020
env_logger = "0.3"
21+
iron = "0.3.0"
22+
staticfile = { version = "0.2.0", features = [ "cache" ] }
2123

2224
[dependencies.cargo]
2325
git = "https://github.com/rust-lang/cargo.git"

src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ extern crate hyper;
99
extern crate time;
1010
extern crate semver;
1111
extern crate slug;
12+
extern crate iron;
13+
extern crate staticfile;
1214

1315
pub use self::build_doc::{build_doc, get_package, source_path, update_sources};
1416
pub use self::copy::{copy_dir, copy_doc_dir};
@@ -19,6 +21,7 @@ pub use self::docbuilder::options::DocBuilderOptions;
1921

2022
pub mod db;
2123
pub mod utils;
24+
pub mod web;
2225
mod build_doc;
2326
mod copy;
2427
mod docbuilder;

src/web/mod.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//! Web interface of cratesfyi
2+
3+
pub use self::rustdoc::start_rustdoc_web_server;
4+
5+
mod rustdoc;
6+
7+
use ::db;
8+
use iron::prelude::*;
9+
use iron::{BeforeMiddleware, typemap};
10+
use postgres;
11+
12+
13+
/// Simple iron middleware for database connection
14+
struct DbConnection;
15+
16+
impl typemap::Key for DbConnection { type Value = postgres::Connection; }
17+
18+
impl BeforeMiddleware for DbConnection {
19+
fn before(&self, req: &mut Request) -> IronResult<()> {
20+
req.extensions.insert::<DbConnection>(db::connect_db().unwrap());
21+
Ok(())
22+
}
23+
}

0 commit comments

Comments
 (0)