@@ -13,42 +13,27 @@ License: perl
13
13
14
14
15
15
use strict;
16
- use Getopt::Std;
17
16
18
- sub parse_time ($);
17
+ use File::Basename qw( basename) ;
18
+ use Getopt::Std qw( getopts) ;
19
19
20
- my ($VERSION ) = ' 1.2' ;
21
-
22
- my $warnings = 0;
23
-
24
- # Print a usage message on a unknown option.
25
- # Requires my patch to Getopt::Std of 25 Feb 1999.
26
- $SIG {__WARN__ } = sub {
27
- require File::Basename;
28
- $0 = File::Basename::basename ($0 );
29
- if (substr ($_ [0], 0, 14) eq " Unknown option" ) {
30
- warn <<EOF ;
31
- $0 (Perl bin utils) $VERSION
32
- $0 [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file [files ...]
33
- EOF
34
- exit ;
35
- }
36
- else {
37
- $warnings = 1;
38
- warn " $0 : @_ " ;
39
- }
40
- };
20
+ use constant EX_SUCCESS => 0;
21
+ use constant EX_FAILURE => 1;
22
+
23
+ my $Program = basename($0 );
41
24
42
- $SIG {__DIE__ } = sub {
43
- require File::Basename;
44
- $0 = File::Basename::basename ($0 );
45
- die " $0 : @_ " ;
46
- };
25
+ sub parse_time ($);
26
+
27
+ my ($VERSION ) = ' 1.3' ;
47
28
48
- # Get the options.
49
- getopts (' acmfr:t:' , \my %options );
29
+ my $rc = EX_SUCCESS;
50
30
51
- warn " Unknown option" unless @ARGV ;
31
+ my %options ;
32
+ getopts(' acmfr:t:' , \%options ) or usage();
33
+ unless (@ARGV ) {
34
+ warn " $Program : missing file agument\n " ;
35
+ usage();
36
+ }
52
37
53
38
my $access_time = exists $options {a } || !exists $options {m };
54
39
my $modification_time = exists $options {m } || !exists $options {a };
@@ -76,7 +61,8 @@ foreach my $file (@ARGV) {
76
61
local *FILE;
77
62
require Fcntl; # Import
78
63
sysopen FILE, $file , Fcntl::O_CREAT () or do {
79
- warn " $file : $! \n " ;
64
+ warn " $Program : $file : $! \n " ;
65
+ $rc = EX_FAILURE;
80
66
next ;
81
67
};
82
68
close FILE;
@@ -86,21 +72,27 @@ foreach my $file (@ARGV) {
86
72
}
87
73
88
74
my ($aorig , $morig ) = (stat $file ) [8, 9] or do {
89
- warn " $file : $! \n " ;
75
+ warn " $Program : $file : $! \n " ;
76
+ $rc = EX_FAILURE;
90
77
next ;
91
78
};
92
79
93
80
my $aset = $access_time ? $atime : $aorig ;
94
81
my $mset = $modification_time ? $mtime : $morig ;
95
82
96
83
utime $aset , $mset , $file or do {
97
- warn " $file : $! \n " ;
84
+ warn " $Program : $file : $! \n " ;
85
+ $rc = EX_FAILURE;
98
86
next ;
99
87
};
100
88
}
89
+ exit $rc ;
101
90
102
-
103
- exit $warnings ;
91
+ sub usage {
92
+ warn " $Program (Perl bin utils) $VERSION \n " ;
93
+ warn " usage: $Program [-acfm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file...\n " ;
94
+ exit EX_FAILURE;
95
+ }
104
96
105
97
sub parse_time ($) {
106
98
my $time = shift ;
0 commit comments