Posted to tcl by dbohdan at Sat Apr 25 18:44:58 GMT 2015view pretty
#!/usr/bin/env tclsh # Assemble, a tool for bundling Tcl source files. # Copyright (C) 2015 Danyil Bohdan # License: MIT package require fileutil namespace eval ::assemble {} proc ::assemble::assemble filename { set main [::fileutil::cat $filename] set output {} foreach line [split $main \n] { if {[regexp {^source\+ (.*)$} $line _ includeFilename]} { append output "# === $includeFilename begin === \n" append output [::fileutil::cat $includeFilename]\n append output "# === $includeFilename end ===\n" } else { append output $line\n } } puts $output } # If this is the main script... if {[info exists argv0] && ([file tail [info script]] eq [file tail $argv0])} { ::assemble::assemble {*}$argv }