我有一个 Tcl 包,它由几个模块、单元测试和示例组成;我希望分发。我已经搜索过,但没有找到任何简单/简单的方法来为其创建安装脚本。我查看了其他软件包,例如 Tclx,看起来他们使用自动工具——对我来说是一个未触及的领域。那么,自动工具是唯一的方法吗?我的目标平台主要是 Mac 和 Linux,但将来可能会扩展到 Windows。
问问题
150 次
1 回答
1
看来我必须创建自己的安装脚本。现在,它非常粗糙:将文件复制到一个位置。它现在对我有用。我将继续增强我的设置脚本以修复错误并在需要时添加功能。这是我的setup.tcl
#!/usr/bin/tclsh
# Crude setup script for my package
# ======================================================================
# Configurable items
# ======================================================================
# Install dir: $destLib/$packagename
set destLib [file join ~ Library Tcl]
set packageName tcl_tools
# List of source/dest to install
set filesList {
argparser.tcl
dateutils.tcl
htmlutils.tcl
listutils.tcl
pkgIndex.tcl
samples/common.tcl
samples/dateutils_sample.tcl
samples/httputils_sample.tcl
samples/parse_by_example_demo_missing_parameter.tcl
samples/parse_by_example_demo.tcl
samples/parse_simple_demo.tcl
}
# ======================================================================
# Determine the destination lib dir
# ======================================================================
if {[llength $::argv] == 1} {
set destLib [lindex $::argv 0]
}
if {[lsearch $auto_path $destLib] == -1} {
puts "ERROR: Invalid directory to install. Must be one of these:"
puts "[join $auto_path \n]"
exit 1
}
set destLib [file join $destLib $packageName]
file mkdir $destLib
# ======================================================================
# Install
# ======================================================================
foreach source $filesList {
set dest [file join $destLib $source]
puts "Installing $dest"
# Create destination dir if needed
set destDir [file dirname $dest]
if {![file isdirectory $destDir]} { file mkdir $destDir }
# Copy
file copy $source $dest
}
puts "Done"
于 2013-07-03T07:33:11.540 回答