Set up packaging and distribution for the file service app #73
|
@ -4,6 +4,7 @@ node_modules
|
||||||
dist
|
dist
|
||||||
result
|
result
|
||||||
*.tgz
|
*.tgz
|
||||||
|
*.tar.gz
|
||||||
file-service/*.sqlite
|
file-service/*.sqlite
|
||||||
file-service/*.sqlite-shm
|
file-service/*.sqlite-shm
|
||||||
file-service/*.sqlite-wal
|
file-service/*.sqlite-wal
|
||||||
|
|
|
@ -6,9 +6,6 @@ edition = "2018"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[features]
|
|
||||||
auth-cli = [ "clap" ]
|
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "file_service"
|
name = "file_service"
|
||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
@ -20,7 +17,6 @@ path = "src/main.rs"
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "auth-cli"
|
name = "auth-cli"
|
||||||
path = "src/bin/cli.rs"
|
path = "src/bin/cli.rs"
|
||||||
required-features = [ "auth-cli" ]
|
|
||||||
|
|
||||||
[target.auth-cli.dependencies]
|
[target.auth-cli.dependencies]
|
||||||
|
|
||||||
|
@ -29,7 +25,7 @@ base64ct = { version = "1", features = [ "alloc" ] }
|
||||||
build_html = { version = "2" }
|
build_html = { version = "2" }
|
||||||
bytes = { version = "1" }
|
bytes = { version = "1" }
|
||||||
chrono = { version = "0.4", features = ["serde"] }
|
chrono = { version = "0.4", features = ["serde"] }
|
||||||
clap = { version = "4", features = [ "derive" ], optional = true }
|
clap = { version = "4", features = [ "derive" ] }
|
||||||
cookie = { version = "0.17" }
|
cookie = { version = "0.17" }
|
||||||
futures-util = { version = "0.3" }
|
futures-util = { version = "0.3" }
|
||||||
hex-string = "0.1.0"
|
hex-string = "0.1.0"
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
VERSION=`cat Cargo.toml | grep "^version =" | sed -r 's/^version = "(.+)"$/\1/'`
|
||||||
|
|
||||||
|
mkdir -p dist
|
||||||
|
cp ../target/release/file-service dist
|
||||||
|
cp ../target/release/auth-cli dist
|
||||||
|
strip dist/file-service
|
||||||
|
strip dist/auth-cli
|
||||||
|
tar -cf file-service-${VERSION}.tar.gz dist/
|
||||||
|
|
|
@ -68,7 +68,7 @@ pub async fn file(
|
||||||
old_etags: Option<String>,
|
old_etags: Option<String>,
|
||||||
) -> Result<Response<Vec<u8>>, Error> {
|
) -> Result<Response<Vec<u8>>, Error> {
|
||||||
match app.get_file(&FileId::from(id)).await {
|
match app.get_file(&FileId::from(id)).await {
|
||||||
Ok(file) => serve_file(file.info.clone(), || file.thumbnail(), old_etags),
|
Ok(file) => serve_file(file.info.clone(), || file.content(), old_etags),
|
||||||
Err(_err) => Response::builder()
|
Err(_err) => Response::builder()
|
||||||
.status(StatusCode::NOT_FOUND)
|
.status(StatusCode::NOT_FOUND)
|
||||||
.body(vec![]),
|
.body(vec![]),
|
||||||
|
|
Loading…
Reference in New Issue