feat: rename to dufs (#59)

close #50

BREAKING CHANGE: rename duf to dufs
This commit is contained in:
sigoden 2022-06-19 22:53:51 +08:00 committed by GitHub
parent 3260b52c47
commit a67da8bdd3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 36 additions and 36 deletions

2
Cargo.lock generated
View file

@ -570,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
[[package]] [[package]]
name = "duf" name = "dufs"
version = "0.18.0" version = "0.18.0"
dependencies = [ dependencies = [
"assert_cmd", "assert_cmd",

View file

@ -1,12 +1,12 @@
[package] [package]
name = "duf" name = "dufs"
version = "0.18.0" version = "0.18.0"
edition = "2021" edition = "2021"
authors = ["sigoden <sigoden@gmail.com>"] authors = ["sigoden <sigoden@gmail.com>"]
description = "Duf is a simple file server." description = "Dufs is a simple file server."
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
homepage = "https://github.com/sigoden/duf" homepage = "https://github.com/sigoden/dufs"
repository = "https://github.com/sigoden/duf" repository = "https://github.com/sigoden/dufs"
categories = ["command-line-utilities", "web-programming::http-server"] categories = ["command-line-utilities", "web-programming::http-server"]
keywords = ["static", "file", "server", "webdav", "cli"] keywords = ["static", "file", "server", "webdav", "cli"]

View file

@ -6,5 +6,5 @@ COPY . .
RUN cargo build --target x86_64-unknown-linux-musl --release RUN cargo build --target x86_64-unknown-linux-musl --release
FROM scratch FROM scratch
COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/duf /bin/ COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/dufs /bin/
ENTRYPOINT ["/bin/duf"] ENTRYPOINT ["/bin/dufs"]

View file

@ -1,11 +1,11 @@
# Duf # Dufs (Old Name: Duf)
[![CI](https://github.com/sigoden/duf/actions/workflows/ci.yaml/badge.svg)](https://github.com/sigoden/duf/actions/workflows/ci.yaml) [![CI](https://github.com/sigoden/dufs/actions/workflows/ci.yaml/badge.svg)](https://github.com/sigoden/dufs/actions/workflows/ci.yaml)
[![Crates](https://img.shields.io/crates/v/duf.svg)](https://crates.io/crates/duf) [![Crates](https://img.shields.io/crates/v/dufs.svg)](https://crates.io/crates/dufs)
Duf is a simple file server. Support static serve, search, upload, webdav... Dufs is a simple file server. Support static serve, search, upload, webdav...
![demo](https://user-images.githubusercontent.com/4012553/171526189-09afc2de-793f-4216-b3d5-31ea408d3610.png) ![demo](https://user-images.githubusercontent.com/4012553/174486522-7af350e6-0195-4f4a-8480-d9464fc6452f.png)
## Features ## Features
@ -24,26 +24,26 @@ Duf is a simple file server. Support static serve, search, upload, webdav...
### With cargo ### With cargo
``` ```
cargo install duf cargo install dufs
``` ```
### With docker ### With docker
``` ```
docker run -v `pwd`:/data -p 5000:5000 --rm -it sigoden/duf /data docker run -v `pwd`:/data -p 5000:5000 --rm -it sigoden/dufs /data
``` ```
### Binaries on macOS, Linux, Windows ### Binaries on macOS, Linux, Windows
Download from [Github Releases](https://github.com/sigoden/duf/releases), unzip and add duf to your $PATH. Download from [Github Releases](https://github.com/sigoden/dufs/releases), unzip and add dufs to your $PATH.
## CLI ## CLI
``` ```
Duf is a simple file server. - https://github.com/sigoden/duf Dufs is a simple file server. - https://github.com/sigoden/dufs
USAGE: USAGE:
duf [OPTIONS] [--] [path] dufs [OPTIONS] [--] [path]
ARGS: ARGS:
<path> Path to a root directory for serving files [default: .] <path> Path to a root directory for serving files [default: .]
@ -72,31 +72,31 @@ OPTIONS:
Serve current working directory, no upload/delete Serve current working directory, no upload/delete
``` ```
duf dufs
``` ```
Allow upload/delete Allow upload/delete
``` ```
duf -A dufs -A
``` ```
Listen on a specific port Listen on a specific port
``` ```
duf -p 80 dufs -p 80
``` ```
For a single page application (SPA) For a single page application (SPA)
``` ```
duf --render-spa dufs --render-spa
``` ```
Use https Use https
``` ```
duf --tls-cert my.crt --tls-key my.key dufs --tls-cert my.crt --tls-key my.key
``` ```
## API ## API
@ -156,7 +156,7 @@ The `--render-*` options change the render logic:
</summary> </summary>
``` ```
duf -a <path>@<readwrite>[@<readonly>] dufs -a <path>@<readwrite>[@<readonly>]
``` ```
- `<path>`: Path to protected - `<path>`: Path to protected
@ -168,7 +168,7 @@ duf -a <path>@<readwrite>[@<readonly>]
For example: For example:
``` ```
duf -a /@admin:pass@* -a /ui@designer:pass1 -A dufs -a /@admin:pass@* -a /ui@designer:pass1 -A
``` ```
- All files/folders are public to access/download. - All files/folders are public to access/download.
- Account `admin:pass` can upload/delete/download any files/folders. - Account `admin:pass` can upload/delete/download any files/folders.
@ -184,8 +184,8 @@ curl --digest -u designer:pass1 http://127.0.0.1:5000/ui/path-to-file
## License ## License
Copyright (c) 2022 duf-developers. Copyright (c) 2022 dufs-developers.
duf is made available under the terms of either the MIT License or the Apache License 2.0, at your option. dufs is made available under the terms of either the MIT License or the Apache License 2.0, at your option.
See the LICENSE-APACHE and LICENSE-MIT files for license details. See the LICENSE-APACHE and LICENSE-MIT files for license details.

View file

@ -11,7 +11,7 @@ use uuid::Uuid;
use crate::utils::encode_uri; use crate::utils::encode_uri;
use crate::BoxResult; use crate::BoxResult;
const REALM: &str = "DUF"; const REALM: &str = "DUFS";
lazy_static! { lazy_static! {
static ref NONCESTARTHASH: Context = { static ref NONCESTARTHASH: Context = {

View file

@ -698,7 +698,7 @@ impl Server {
"__SLOT__", "__SLOT__",
&format!( &format!(
r#" r#"
<title>Index of {} - Duf</title> <title>Index of {} - Dufs</title>
<style>{}</style> <style>{}</style>
<script> <script>
const DATA = const DATA =

View file

@ -35,7 +35,7 @@ fn path_prefix_propfind(
#[rstest] #[rstest]
#[case("index.html")] #[case("index.html")]
fn serve_single_file(tmpdir: TempDir, port: u16, #[case] file: &str) -> Result<(), Error> { fn serve_single_file(tmpdir: TempDir, port: u16, #[case] file: &str) -> Result<(), Error> {
let mut child = Command::cargo_bin("duf")? let mut child = Command::cargo_bin("dufs")?
.env("RUST_LOG", "false") .env("RUST_LOG", "false")
.arg(tmpdir.path().join(file)) .arg(tmpdir.path().join(file))
.arg("-p") .arg("-p")

View file

@ -12,7 +12,7 @@ use std::process::{Command, Stdio};
#[rstest] #[rstest]
#[case(&["-b", "20.205.243.166"])] #[case(&["-b", "20.205.243.166"])]
fn bind_fails(tmpdir: TempDir, port: u16, #[case] args: &[&str]) -> Result<(), Error> { fn bind_fails(tmpdir: TempDir, port: u16, #[case] args: &[&str]) -> Result<(), Error> {
Command::cargo_bin("duf")? Command::cargo_bin("dufs")?
.env("RUST_LOG", "false") .env("RUST_LOG", "false")
.arg(tmpdir.path()) .arg(tmpdir.path())
.arg("-p") .arg("-p")
@ -50,7 +50,7 @@ fn bind_ipv4_ipv6(
#[case(&[] as &[&str])] #[case(&[] as &[&str])]
#[case(&["--path-prefix", "/prefix"])] #[case(&["--path-prefix", "/prefix"])]
fn validate_printed_urls(tmpdir: TempDir, port: u16, #[case] args: &[&str]) -> Result<(), Error> { fn validate_printed_urls(tmpdir: TempDir, port: u16, #[case] args: &[&str]) -> Result<(), Error> {
let mut child = Command::cargo_bin("duf")? let mut child = Command::cargo_bin("dufs")?
.env("RUST_LOG", "false") .env("RUST_LOG", "false")
.arg(tmpdir.path()) .arg(tmpdir.path())
.arg("-p") .arg("-p")

View file

@ -83,7 +83,7 @@ pub fn port() -> u16 {
free_local_port().expect("Couldn't find a free local port") free_local_port().expect("Couldn't find a free local port")
} }
/// Run duf as a server; Start with a temporary directory, a free port and some /// Run dufs as a server; Start with a temporary directory, a free port and some
/// optional arguments then wait for a while for the server setup to complete. /// optional arguments then wait for a while for the server setup to complete.
#[fixture] #[fixture]
#[allow(dead_code)] #[allow(dead_code)]
@ -94,7 +94,7 @@ where
{ {
let port = port(); let port = port();
let tmpdir = tmpdir(); let tmpdir = tmpdir();
let child = Command::cargo_bin("duf") let child = Command::cargo_bin("dufs")
.expect("Couldn't find test binary") .expect("Couldn't find test binary")
.env("RUST_LOG", "false") .env("RUST_LOG", "false")
.arg(tmpdir.path()) .arg(tmpdir.path())
@ -122,7 +122,7 @@ where
{ {
let port = port(); let port = port();
let tmpdir = tmpdir(); let tmpdir = tmpdir();
let child = Command::cargo_bin("duf") let child = Command::cargo_bin("dufs")
.expect("Couldn't find test binary") .expect("Couldn't find test binary")
.env("RUST_LOG", "false") .env("RUST_LOG", "false")
.arg(tmpdir.path()) .arg(tmpdir.path())

View file

@ -29,7 +29,7 @@ fn tls_works(#[case] server: TestServer) -> Result<(), Error> {
/// Wrong path for cert throws error. /// Wrong path for cert throws error.
#[rstest] #[rstest]
fn wrong_path_cert() -> Result<(), Error> { fn wrong_path_cert() -> Result<(), Error> {
Command::cargo_bin("duf")? Command::cargo_bin("dufs")?
.args(&["--tls-cert", "wrong", "--tls-key", "tests/data/key.pem"]) .args(&["--tls-cert", "wrong", "--tls-key", "tests/data/key.pem"])
.assert() .assert()
.failure() .failure()
@ -41,7 +41,7 @@ fn wrong_path_cert() -> Result<(), Error> {
/// Wrong paths for key throws errors. /// Wrong paths for key throws errors.
#[rstest] #[rstest]
fn wrong_path_key() -> Result<(), Error> { fn wrong_path_key() -> Result<(), Error> {
Command::cargo_bin("duf")? Command::cargo_bin("dufs")?
.args(&["--tls-cert", "tests/data/cert.pem", "--tls-key", "wrong"]) .args(&["--tls-cert", "tests/data/cert.pem", "--tls-key", "wrong"])
.assert() .assert()
.failure() .failure()