|
@@ -13,12 +13,12 @@ my $name = shift or usage;
|
13
|
13
|
my $type = ($ARGV[0] ? shift : guesstype $name);
|
14
|
14
|
|
15
|
15
|
my $bang = {
|
16
|
|
- pl => `which perl`,
|
17
|
|
- sh => `which sh`,
|
18
|
|
- py => `which python`,
|
19
|
|
- bash => `which bash`,
|
20
|
|
- sed => `which sed`,
|
21
|
|
- bc => `which bc`
|
|
16
|
+ pl => `which perl`,
|
|
17
|
+ sh => `which sh`,
|
|
18
|
+ py => `which python`,
|
|
19
|
+ bash => `which bash`,
|
|
20
|
+ sed => `which sed`,
|
|
21
|
+ bc => `which bc`
|
22
|
22
|
};
|
23
|
23
|
|
24
|
24
|
my $editors = [ qw/ vim editor / ];
|
|
@@ -30,30 +30,30 @@ $cmds->{editor}->{run} = "editor '%s'";
|
30
|
30
|
|
31
|
31
|
|
32
|
32
|
if (exists $bang->{$type}) {
|
33
|
|
- -e $name || mkexec $name, $bang->{$type};
|
34
|
|
- chmod $DEFAULT_MODE, $name;
|
|
33
|
+ -e $name || mkexec $name, $bang->{$type};
|
|
34
|
+ chmod $DEFAULT_MODE, $name;
|
35
|
35
|
launch_editor $name;
|
36
|
36
|
} else {
|
37
|
|
- die "unknown type: $type\n";
|
|
37
|
+ die "unknown type: $type\n";
|
38
|
38
|
}
|
39
|
39
|
|
40
|
40
|
sub usage {
|
41
|
|
- print STDERR "usage: $0 filename [type]\n";
|
42
|
|
- exit 0;
|
|
41
|
+ print STDERR "usage: $0 filename [type]\n";
|
|
42
|
+ exit 0;
|
43
|
43
|
}
|
44
|
44
|
|
45
|
45
|
sub guesstype {
|
46
|
|
- my $name = shift;
|
47
|
|
- my ($ext) = $name =~ m|\.(\w+)$|;
|
48
|
|
- return ( $ext ? $ext : $DEFAULT_TYPE);
|
|
46
|
+ my $name = shift;
|
|
47
|
+ my ($ext) = $name =~ m|\.(\w+)$|;
|
|
48
|
+ return ( $ext ? $ext : $DEFAULT_TYPE);
|
49
|
49
|
}
|
50
|
50
|
|
51
|
51
|
sub mkexec {
|
52
|
|
- my ($name, $bang) = @_;
|
53
|
|
- open EXE, ">", $name || die "cannot open $name for writing: $!\n";
|
54
|
|
- -W EXE || die "file $name is not writable\n";
|
55
|
|
- print EXE "#!$bang\n";
|
56
|
|
- close EXE || die "cannot close $name: $!\n";
|
|
52
|
+ my ($name, $bang) = @_;
|
|
53
|
+ open EXE, ">", $name || die "cannot open $name for writing: $!\n";
|
|
54
|
+ -W EXE || die "file $name is not writable\n";
|
|
55
|
+ print EXE "#!$bang\n";
|
|
56
|
+ close EXE || die "cannot close $name: $!\n";
|
57
|
57
|
}
|
58
|
58
|
|
59
|
59
|
sub get_cmd {
|