14 Commits

Author SHA1 Message Date
e21f1e2057 Update Rust crate clap to 4.5.40
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-06-10 00:21:56 +00:00
23d476f853 Update Rust crate clap to 4.5.39
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-28 00:07:30 +00:00
81f2ae917d Update Rust crate actix-web to 4.11.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-13 00:16:37 +00:00
bb371c14be Update Rust crate clap to 4.5.38
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-05-12 00:16:04 +00:00
4dcaf21103 Update Rust crate clap to 4.5.37
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-19 00:27:07 +00:00
d22e4cfc10 Update Rust crate clap to 4.5.36
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-12 00:26:53 +00:00
52db5b4cba Update Rust crate log to 0.4.27
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-04 00:34:10 +00:00
375013b22f Update Rust crate env_logger to 0.11.8
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-03 00:34:03 +00:00
c618436df6 Update Rust crate clap to 4.5.35
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-02 00:33:59 +00:00
994d39d348 Update Rust crate actix-web to 4.10.2
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-01 02:04:40 +00:00
f2862eb020 Fix typo
All checks were successful
continuous-integration/drone/push Build is passing
2025-04-01 00:04:45 +02:00
4bf70337d1 Refresh repository
All checks were successful
continuous-integration/drone/push Build is passing
2025-04-01 00:04:22 +02:00
05cde266a5 Improve usability 2024-08-19 15:24:52 +02:00
663b6f285e Add README 2024-08-02 16:13:56 +02:00
6 changed files with 622 additions and 366 deletions

39
.drone.yml Normal file
View File

@ -0,0 +1,39 @@
---
kind: pipeline
type: docker
name: default
steps:
- name: fetch_dependencies
image: rust
volumes:
- name: rust_registry
path: /usr/local/cargo/registry
commands:
- cargo fetch
- name: code_quality
image: rust
volumes:
- name: rust_registry
path: /usr/local/cargo/registry
depends_on:
- fetch_dependencies
commands:
- rustup component add clippy
- cargo clippy -- -D warnings
- name: test
image: rust
volumes:
- name: rust_registry
path: /usr/local/cargo/registry
depends_on:
- code_quality
commands:
- cargo test
volumes:
- name: rust_registry
temp: {}

914
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,10 @@
[package] [package]
name = "hello_world_http" name = "hello_world_http"
version = "0.1.0" version = "0.1.0"
edition = "2021" edition = "2024"
[dependencies] [dependencies]
clap = {version = "4.5.9", features = ["derive", "env"]} clap = {version = "4.5.40", features = ["derive", "env"]}
actix-web = "4" actix-web = "4.11.0"
env_logger = "0.11.5" env_logger = "0.11.8"
log = "0.4.27"

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# Hello World HTTP
Basic HTTP server written in Rust that spawns an HTTP server.

4
renovate.json Normal file
View File

@ -0,0 +1,4 @@
{
"extends": ["local>renovate/presets"]
}

View File

@ -1,5 +1,5 @@
use actix_web::middleware::Logger; use actix_web::middleware::Logger;
use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder}; use actix_web::{App, HttpResponse, HttpServer, Responder, get, post, web};
use clap::Parser; use clap::Parser;
use env_logger::Env; use env_logger::Env;
@ -7,9 +7,9 @@ use env_logger::Env;
#[derive(clap::Parser, Debug)] #[derive(clap::Parser, Debug)]
#[command(version, about, long_about = None)] #[command(version, about, long_about = None)]
struct Args { struct Args {
/// Name of the person to greet /// Listen address
#[arg(env, short, long, default_value = "0.0.0.0:8000")] #[arg(env, short, long, default_value = "0.0.0.0:8000")]
listen_url: String, listen_addr: String,
} }
#[get("/")] #[get("/")]
@ -32,6 +32,8 @@ async fn main() -> std::io::Result<()> {
let args = Args::parse(); let args = Args::parse();
log::info!("Starting to listen on {}", args.listen_addr);
HttpServer::new(|| { HttpServer::new(|| {
App::new() App::new()
.wrap(Logger::default()) .wrap(Logger::default())
@ -39,7 +41,17 @@ async fn main() -> std::io::Result<()> {
.service(echo) .service(echo)
.route("/hey", web::get().to(manual_hello)) .route("/hey", web::get().to(manual_hello))
}) })
.bind(args.listen_url)? .bind(args.listen_addr)?
.run() .run()
.await .await
} }
#[cfg(test)]
mod test {
use crate::Args;
#[test]
fn verify_cli() {
use clap::CommandFactory;
Args::command().debug_assert()
}
}