Bladeren bron

Added templates

Alois Mahdal 11 jaren geleden
bovenliggende
commit
f94c874557
1 gewijzigde bestanden met toevoegingen van 15 en 3 verwijderingen
  1. 15
    3
      bin/mkexec.pl

+ 15
- 3
bin/mkexec.pl Bestand weergeven

21
     bc   => `which bc`
21
     bc   => `which bc`
22
 };
22
 };
23
 
23
 
24
+my $template = {
25
+    pl   => "use strict;\nuse warnings;\n",
26
+    py   => "if __name__ == '__main__':\n"
27
+};
28
+
24
 my $editors = [ qw/ vim editor / ];
29
 my $editors = [ qw/ vim editor / ];
25
 my $cmds;
30
 my $cmds;
26
 $cmds->{vim}->{test}    = "vim --version 2>/dev/null";
31
 $cmds->{vim}->{test}    = "vim --version 2>/dev/null";
30
 
35
 
31
 
36
 
32
 if (exists $bang->{$type}) {
37
 if (exists $bang->{$type}) {
33
-    -e $name || mkexec $name, $bang->{$type};
38
+    -e $name || mkexec $name, mkbody($type);
34
     chmod $DEFAULT_MODE, $name;
39
     chmod $DEFAULT_MODE, $name;
35
     launch_editor $name;
40
     launch_editor $name;
36
 } else {
41
 } else {
48
     return ( $ext ? $ext : $DEFAULT_TYPE);
53
     return ( $ext ? $ext : $DEFAULT_TYPE);
49
 }
54
 }
50
 
55
 
56
+sub mkbody {
57
+    my $type = shift;
58
+    my $tmpl = "";
59
+    $tmpl .= $template->{$type} if exists $template->{$type};
60
+    return sprintf "#!%s\n%s\n", $bang->{$type}, $tmpl;
61
+}
62
+
51
 sub mkexec {
63
 sub mkexec {
52
-    my ($name, $bang) = @_;
64
+    my ($name, $body) = @_;
53
     open EXE, ">", $name    || die "cannot open $name for writing: $!\n";
65
     open EXE, ">", $name    || die "cannot open $name for writing: $!\n";
54
     -W EXE                  || die "file $name is not writable\n";
66
     -W EXE                  || die "file $name is not writable\n";
55
-    print EXE "#!$bang\n";
67
+    print EXE $body;
56
     close EXE               || die "cannot close $name: $!\n";
68
     close EXE               || die "cannot close $name: $!\n";
57
 }
69
 }
58
 
70