#!/usr/bin/tclsh # (find-es "escripts" "fix-eheaders") proc readfile {fname} { set f [open $fname r]; set s [read $f]; close $f return $s } proc writefile {fname s} { set f [open $fname w]; puts -nonewline $f $s; close $f } proc splite {s} { set v "#\n" set nv "#\[^\n\]+\n" set com "#\[^\n\]*\n" set bigre "^$nv${v}(($nv)+)${v}(($com)+)(.*)\$" if {[regexp $bigre $s -> descr {} hrest {} rest]} { return [list $descr $hrest $rest] } else { error "Bad efile" } } foreach fname $argv { foreach {descr hrest rest} [splite [readfile $env(ES)/$fname]] {} writefile /tmp/e/$fname \ "####### # $descr# # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at # or at . # See also , # , # , # , # and . # ####### $rest" puts "$env(ES)/$fname -> /tmp/e/$fname" }