aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven-Hendrik Haase <svenstaro@gmail.com>2021-04-18 03:42:14 +0000
committerGitHub <noreply@github.com>2021-04-18 03:42:14 +0000
commitf645c2b7f74bbebf4051fd19e568c6092822c118 (patch)
tree46ff56811ce1af9914a3743e09c814432f3dffaf /src
parentAdd CHANGELOG entry for wrapping breadcrumbs at any char (diff)
parentChange naming of uncompressed/compressed tarballs (diff)
downloadminiserve-f645c2b7f74bbebf4051fd19e568c6092822c118.tar.gz
miniserve-f645c2b7f74bbebf4051fd19e568c6092822c118.zip
Merge pull request #492 from deantvv/tar-and-tar-archive
Separate tar archive and tar flags
Diffstat (limited to 'src')
-rw-r--r--src/archive.rs4
-rw-r--r--src/args.rs6
-rw-r--r--src/listing.rs4
-rw-r--r--src/main.rs8
-rw-r--r--src/renderer.rs5
5 files changed, 20 insertions, 7 deletions
diff --git a/src/archive.rs b/src/archive.rs
index 4df3a31..e53aea8 100644
--- a/src/archive.rs
+++ b/src/archive.rs
@@ -53,9 +53,9 @@ impl CompressionMethod {
}
}
- pub fn is_enabled(self, tar_enabled: bool, zip_enabled: bool) -> bool {
+ pub fn is_enabled(self, tar_enabled: bool, tar_gz_enabled: bool, zip_enabled: bool) -> bool {
match self {
- CompressionMethod::TarGz => tar_enabled,
+ CompressionMethod::TarGz => tar_gz_enabled,
CompressionMethod::Tar => tar_enabled,
CompressionMethod::Zip => zip_enabled,
}
diff --git a/src/args.rs b/src/args.rs
index 81e49dc..819618f 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -99,10 +99,14 @@ pub struct CliArgs {
#[structopt(short = "o", long = "overwrite-files")]
pub overwrite_files: bool,
- /// Enable tar archive generation
+ /// Enable uncompressed tar archive generation
#[structopt(short = "r", long = "enable-tar")]
pub enable_tar: bool,
+ /// Enable gz-compressed tar archive generation
+ #[structopt(short = "g", long = "enable-tar-gz")]
+ pub enable_tar_gz: bool,
+
/// Enable zip archive generation
///
/// WARNING: Zipping large directories can result in out-of-memory exception
diff --git a/src/listing.rs b/src/listing.rs
index 8c01b4b..dcaed96 100644
--- a/src/listing.rs
+++ b/src/listing.rs
@@ -167,6 +167,7 @@ pub fn directory_listing(
show_qrcode: bool,
upload_route: String,
tar_enabled: bool,
+ tar_gz_enabled: bool,
zip_enabled: bool,
dirs_first: bool,
hide_version_footer: bool,
@@ -338,7 +339,7 @@ pub fn directory_listing(
}
if let Some(compression_method) = query_params.download {
- if !compression_method.is_enabled(tar_enabled, zip_enabled) {
+ if !compression_method.is_enabled(tar_enabled, tar_gz_enabled, zip_enabled) {
return Ok(ServiceResponse::new(
req.clone(),
HttpResponse::Forbidden()
@@ -421,6 +422,7 @@ pub fn directory_listing(
&encoded_dir,
breadcrumbs,
tar_enabled,
+ tar_gz_enabled,
zip_enabled,
hide_version_footer,
)
diff --git a/src/main.rs b/src/main.rs
index 84a4cb8..f174d57 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -90,9 +90,12 @@ pub struct MiniserveConfig {
/// Enable upload to override existing files
pub overwrite_files: bool,
- /// If false, creation of tar archives is disabled
+ /// If false, creation of uncompressed tar archives is disabled
pub tar_enabled: bool,
+ /// If false, creation of gz-compressed tar archives is disabled
+ pub tar_gz_enabled: bool,
+
/// If false, creation of zip archives is disabled
pub zip_enabled: bool,
@@ -161,6 +164,7 @@ impl MiniserveConfig {
show_qrcode: args.qrcode,
file_upload: args.file_upload,
tar_enabled: args.enable_tar,
+ tar_gz_enabled: args.enable_tar_gz,
zip_enabled: args.enable_zip,
dirs_first: args.dirs_first,
title: args.title,
@@ -411,6 +415,7 @@ fn configure_app(app: &mut web::ServiceConfig, conf: &MiniserveConfig) {
let show_qrcode = conf.show_qrcode;
let file_upload = conf.file_upload;
let tar_enabled = conf.tar_enabled;
+ let tar_gz_enabled = conf.tar_gz_enabled;
let zip_enabled = conf.zip_enabled;
let dirs_first = conf.dirs_first;
let hide_version_footer = conf.hide_version_footer;
@@ -453,6 +458,7 @@ fn configure_app(app: &mut web::ServiceConfig, conf: &MiniserveConfig) {
show_qrcode,
u_r.clone(),
tar_enabled,
+ tar_gz_enabled,
zip_enabled,
dirs_first,
hide_version_footer,
diff --git a/src/renderer.rs b/src/renderer.rs
index c99ea67..4596369 100644
--- a/src/renderer.rs
+++ b/src/renderer.rs
@@ -26,6 +26,7 @@ pub fn page(
encoded_dir: &str,
breadcrumbs: Vec<Breadcrumb>,
tar_enabled: bool,
+ tar_gz_enabled: bool,
zip_enabled: bool,
hide_version_footer: bool,
) -> Markup {
@@ -94,10 +95,10 @@ pub fn page(
}
}
div.toolbar {
- @if tar_enabled || zip_enabled {
+ @if tar_enabled || tar_gz_enabled || zip_enabled {
div.download {
@for compression_method in CompressionMethod::iter() {
- @if compression_method.is_enabled(tar_enabled, zip_enabled) {
+ @if compression_method.is_enabled(tar_enabled, tar_gz_enabled, zip_enabled) {
(archive_button(compression_method, sort_method, sort_order))
}
}