aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/archive.rs9
-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, 25 insertions, 7 deletions
diff --git a/src/archive.rs b/src/archive.rs
index 4df3a31..28d26b5 100644
--- a/src/archive.rs
+++ b/src/archive.rs
@@ -53,10 +53,15 @@ impl CompressionMethod {
}
}
- pub fn is_enabled(self, tar_enabled: bool, zip_enabled: bool) -> bool {
+ pub fn is_enabled(
+ self,
+ tar_enabled: bool,
+ tar_archive_enabled: bool,
+ zip_enabled: bool,
+ ) -> bool {
match self {
- CompressionMethod::TarGz => tar_enabled,
CompressionMethod::Tar => tar_enabled,
+ CompressionMethod::TarGz => tar_archive_enabled,
CompressionMethod::Zip => zip_enabled,
}
}
diff --git a/src/args.rs b/src/args.rs
index 81e49dc..bf30254 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 tar generation
#[structopt(short = "r", long = "enable-tar")]
pub enable_tar: bool,
+ /// Enable tar archive generation
+ #[structopt(short = "g", long = "enable-tar-archive")]
+ pub enable_tar_archive: 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 66aea6b..868817c 100644
--- a/src/listing.rs
+++ b/src/listing.rs
@@ -158,6 +158,7 @@ pub fn directory_listing(
show_qrcode: bool,
upload_route: String,
tar_enabled: bool,
+ tar_archive_enabled: bool,
zip_enabled: bool,
dirs_first: bool,
hide_version_footer: bool,
@@ -330,7 +331,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_archive_enabled, zip_enabled) {
return Ok(ServiceResponse::new(
req.clone(),
HttpResponse::Forbidden()
@@ -413,6 +414,7 @@ pub fn directory_listing(
&encoded_dir,
breadcrumbs,
tar_enabled,
+ tar_archive_enabled,
zip_enabled,
hide_version_footer,
)
diff --git a/src/main.rs b/src/main.rs
index 84a4cb8..a00ac3c 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 tar is disabled
pub tar_enabled: bool,
+ /// If false, creation of tar archives is disabled
+ pub tar_archive_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_archive_enabled: args.enable_tar_archive,
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_archive_enabled = conf.tar_archive_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_archive_enabled,
zip_enabled,
dirs_first,
hide_version_footer,
diff --git a/src/renderer.rs b/src/renderer.rs
index c9ec9cd..71a929a 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_archive_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_archive_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_archive_enabled, zip_enabled) {
(archive_button(compression_method, sort_method, sort_order))
}
}