6
6
7
7
#include < AK/LexicalPath.h>
8
8
#include < LibCore/ArgsParser.h>
9
- #include < LibCore/DeprecatedFile.h>
10
9
#include < LibCore/System.h>
11
10
#include < LibFileSystem/FileSystem.h>
12
11
#include < LibMain/Main.h>
@@ -18,7 +17,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
18
17
TRY (Core::System::pledge (" stdio rpath wpath cpath fattr chown" ));
19
18
20
19
bool link = false ;
21
- auto preserve = Core::DeprecatedFile ::PreserveMode::Nothing;
20
+ auto preserve = FileSystem ::PreserveMode::Nothing;
22
21
bool recursion_allowed = false ;
23
22
bool verbose = false ;
24
23
Vector<StringView> sources;
@@ -34,19 +33,19 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
34
33
" attributes" ,
35
34
[&preserve](StringView s) {
36
35
if (s.is_empty ()) {
37
- preserve = Core::DeprecatedFile:: PreserveMode::Permissions | Core::DeprecatedFile:: PreserveMode::Ownership | Core::DeprecatedFile ::PreserveMode::Timestamps;
36
+ preserve = FileSystem:: PreserveMode::Permissions | FileSystem:: PreserveMode::Ownership | FileSystem ::PreserveMode::Timestamps;
38
37
return true ;
39
38
}
40
39
41
40
bool values_ok = true ;
42
41
43
42
s.for_each_split_view (' ,' , SplitBehavior::Nothing, [&](StringView value) {
44
43
if (value == " mode" sv) {
45
- preserve |= Core::DeprecatedFile ::PreserveMode::Permissions;
44
+ preserve |= FileSystem ::PreserveMode::Permissions;
46
45
} else if (value == " ownership" sv) {
47
- preserve |= Core::DeprecatedFile ::PreserveMode::Ownership;
46
+ preserve |= FileSystem ::PreserveMode::Ownership;
48
47
} else if (value == " timestamps" sv) {
49
- preserve |= Core::DeprecatedFile ::PreserveMode::Timestamps;
48
+ preserve |= FileSystem ::PreserveMode::Timestamps;
50
49
} else {
51
50
warnln (" cp: Unknown or unimplemented --preserve attribute: '{}'" , value);
52
51
values_ok = false ;
@@ -64,7 +63,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
64
63
args_parser.add_positional_argument (destination, " Destination file path" , " destination" );
65
64
args_parser.parse (arguments);
66
65
67
- if (has_flag (preserve, Core::DeprecatedFile ::PreserveMode::Permissions)) {
66
+ if (has_flag (preserve, FileSystem ::PreserveMode::Permissions)) {
68
67
umask (0 );
69
68
} else {
70
69
TRY (Core::System::pledge (" stdio rpath wpath cpath fattr" ));
@@ -77,15 +76,15 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
77
76
? DeprecatedString::formatted (" {}/{}" , destination, LexicalPath::basename (source))
78
77
: destination;
79
78
80
- auto result = Core::DeprecatedFile ::copy_file_or_directory (
79
+ auto result = FileSystem ::copy_file_or_directory (
81
80
destination_path, source,
82
- recursion_allowed ? Core::DeprecatedFile:: RecursionMode::Allowed : Core::DeprecatedFile ::RecursionMode::Disallowed,
83
- link ? Core::DeprecatedFile:: LinkMode::Allowed : Core::DeprecatedFile ::LinkMode::Disallowed,
84
- Core::DeprecatedFile ::AddDuplicateFileMarker::No,
81
+ recursion_allowed ? FileSystem:: RecursionMode::Allowed : FileSystem ::RecursionMode::Disallowed,
82
+ link ? FileSystem:: LinkMode::Allowed : FileSystem ::LinkMode::Disallowed,
83
+ FileSystem ::AddDuplicateFileMarker::No,
85
84
preserve);
86
85
87
86
if (result.is_error ()) {
88
- if (result.error ().tried_recursing )
87
+ if (result.error ().code () == EISDIR )
89
88
warnln (" cp: -R not specified; omitting directory '{}'" , source);
90
89
else
91
90
warnln (" cp: unable to copy '{}' to '{}': {}" , source, destination_path, strerror (result.error ().code ()));
0 commit comments