@@ -8,9 +8,9 @@ use crate::{
88 append:: { open_archive_then_seek_to_end, run_append_archive} ,
99 ask_password, check_password,
1010 core:: {
11- AclStrategy , CreateOptions , KeepOptions , OwnerOptions , PathFilter , PathTransformers ,
12- PathnameEditor , PermissionStrategy , TimeFilterResolver , TimeOptions , TimestampStrategy ,
13- XattrStrategy , collect_items, collect_split_archives, entry_option,
11+ AclStrategy , CreateOptions , FflagsStrategy , KeepOptions , OwnerOptions , PathFilter ,
12+ PathTransformers , PathnameEditor , PermissionStrategy , TimeFilterResolver , TimeOptions ,
13+ TimestampStrategy , XattrStrategy , collect_items, collect_split_archives, entry_option,
1414 path_lock:: PathLocks ,
1515 re:: { bsd:: SubstitutionRule , gnu:: TransformRule } ,
1616 read_paths,
@@ -73,6 +73,7 @@ use std::{env, io, path::PathBuf, sync::Arc, time::SystemTime};
7373 group( ArgGroup :: new( "ctime-newer-than-source" ) . args( [ "newer_ctime" , "newer_ctime_than" ] ) ) ,
7474 group( ArgGroup :: new( "mtime-older-than-source" ) . args( [ "older_mtime" , "older_mtime_than" ] ) ) ,
7575 group( ArgGroup :: new( "mtime-newer-than-source" ) . args( [ "newer_mtime" , "newer_mtime_than" ] ) ) ,
76+ group( ArgGroup :: new( "keep-fflags-flag" ) . args( [ "keep_fflags" , "no_keep_fflags" ] ) ) ,
7677) ]
7778#[ cfg_attr( windows, command(
7879 group( ArgGroup :: new( "windows-unstable-keep-permission" ) . args( [ "keep_permission" , "no_keep_permission" ] ) . requires( "unstable" ) ) ,
@@ -190,6 +191,18 @@ pub(crate) struct StdioCommand {
190191 help = "Do not archive acl of files. This is the inverse option of --keep-acl (unstable)"
191192 ) ]
192193 no_keep_acl : bool ,
194+ #[ arg(
195+ long,
196+ visible_aliases = [ "preserve-fflags" , "fflags" ] ,
197+ help = "Archiving the file flags of the files (unstable)"
198+ ) ]
199+ keep_fflags : bool ,
200+ #[ arg(
201+ long,
202+ visible_aliases = [ "no-preserve-fflags" , "no-fflags" ] ,
203+ help = "Do not archive file flags of files. This is the inverse option of --keep-fflags (unstable)"
204+ ) ]
205+ no_keep_fflags : bool ,
193206 #[ arg( long, help = "Solid mode archive" ) ]
194207 pub ( crate ) solid : bool ,
195208 #[ command( flatten) ]
@@ -526,6 +539,7 @@ fn run_create_archive(args: StdioCommand) -> anyhow::Result<()> {
526539 ) ,
527540 xattr_strategy : XattrStrategy :: from_flags ( args. keep_xattr , args. no_keep_xattr ) ,
528541 acl_strategy : AclStrategy :: from_flags ( args. keep_acl , args. no_keep_acl ) ,
542+ fflags_strategy : FflagsStrategy :: from_flags ( args. keep_fflags , args. no_keep_fflags ) ,
529543 } ;
530544 let owner_options = OwnerOptions :: new (
531545 args. uname ,
@@ -606,6 +620,7 @@ fn run_extract_archive(args: StdioCommand) -> anyhow::Result<()> {
606620 ) ,
607621 xattr_strategy : XattrStrategy :: from_flags ( args. keep_xattr , args. no_keep_xattr ) ,
608622 acl_strategy : AclStrategy :: from_flags ( args. keep_acl , args. no_keep_acl ) ,
623+ fflags_strategy : FflagsStrategy :: from_flags ( args. keep_fflags , args. no_keep_fflags ) ,
609624 } ,
610625 owner_options : OwnerOptions :: new (
611626 args. uname ,
@@ -736,6 +751,7 @@ fn run_append(args: StdioCommand) -> anyhow::Result<()> {
736751 ) ,
737752 xattr_strategy : XattrStrategy :: from_flags ( args. keep_xattr , args. no_keep_xattr ) ,
738753 acl_strategy : AclStrategy :: from_flags ( args. keep_acl , args. no_keep_acl ) ,
754+ fflags_strategy : FflagsStrategy :: from_flags ( args. keep_fflags , args. no_keep_fflags ) ,
739755 } ;
740756 let owner_options = OwnerOptions :: new (
741757 args. uname ,
0 commit comments