Browse Source

Added templates

Alois Mahdal 11 years ago
parent
commit
f94c874557
1 changed files with 15 additions and 3 deletions
  1. 15
    3
      bin/mkexec.pl

+ 15
- 3
bin/mkexec.pl View File

@@ -21,6 +21,11 @@ my $bang = {
21 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 29
 my $editors = [ qw/ vim editor / ];
25 30
 my $cmds;
26 31
 $cmds->{vim}->{test}    = "vim --version 2>/dev/null";
@@ -30,7 +35,7 @@ $cmds->{editor}->{run}  = "editor '%s'";
30 35
 
31 36
 
32 37
 if (exists $bang->{$type}) {
33
-    -e $name || mkexec $name, $bang->{$type};
38
+    -e $name || mkexec $name, mkbody($type);
34 39
     chmod $DEFAULT_MODE, $name;
35 40
     launch_editor $name;
36 41
 } else {
@@ -48,11 +53,18 @@ sub guesstype {
48 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 63
 sub mkexec {
52
-    my ($name, $bang) = @_;
64
+    my ($name, $body) = @_;
53 65
     open EXE, ">", $name    || die "cannot open $name for writing: $!\n";
54 66
     -W EXE                  || die "file $name is not writable\n";
55
-    print EXE "#!$bang\n";
67
+    print EXE $body;
56 68
     close EXE               || die "cannot close $name: $!\n";
57 69
 }
58 70