瀏覽代碼

Fixed reckless clobbering if file existed

Alois Mahdal 11 年之前
父節點
當前提交
07fb761c58
共有 2 個檔案被更改,包括 3 行新增7 行删除
  1. 1
    5
      README.md
  2. 2
    2
      bin/mkexec.pl

+ 1
- 5
README.md 查看文件

26
 Make executable script for you and heat up vim.  Accepts filename as parameter.
26
 Make executable script for you and heat up vim.  Accepts filename as parameter.
27
 
27
 
28
 1.  try to guess type from name (e.g. .pl -> perl)
28
 1.  try to guess type from name (e.g. .pl -> perl)
29
-2.  clobber(!) filename with shebang (based on `which` call)
29
+2.  if filename does not exist, create it with shebang (based on `which` call)
30
 3.  chmod it to `0755` (yeah, hardcoded `0755`, no smartness here whatsoever)
30
 3.  chmod it to `0755` (yeah, hardcoded `0755`, no smartness here whatsoever)
31
 4.  try to heat up `vim` or `editor` for you.
31
 4.  try to heat up `vim` or `editor` for you.
32
 
32
 
33
-**Warning**: This clobbers filename without warnings but I'm too lazy to fix
34
-             that.  Either send a patch or make me feel emarrassed enough so
35
-             I'll do it myself.
36
-
37
 
33
 
38
 ### timestamp.pl ###
34
 ### timestamp.pl ###
39
 
35
 

+ 2
- 2
bin/mkexec.pl 查看文件

30
 
30
 
31
 
31
 
32
 if (exists $bang->{$type}) {
32
 if (exists $bang->{$type}) {
33
-	mkexec $name, $bang->{$type};
33
+	-e $name || mkexec $name, $bang->{$type};
34
+	chmod $DEFAULT_MODE, $name;
34
     launch_editor $name;
35
     launch_editor $name;
35
 } else {
36
 } else {
36
 	die "unknown type: $type\n";
37
 	die "unknown type: $type\n";
53
 	-W EXE			|| die "file $name is not writable\n";
54
 	-W EXE			|| die "file $name is not writable\n";
54
 	print EXE "#!$bang\n";
55
 	print EXE "#!$bang\n";
55
 	close EXE		|| die "cannot close $name: $!\n";
56
 	close EXE		|| die "cannot close $name: $!\n";
56
-	chmod $DEFAULT_MODE, $name;
57
 }
57
 }
58
 
58
 
59
 sub get_cmd {
59
 sub get_cmd {