2013-07-02 2 views
2

J'ai un package Tcl composé de quelques modules, de tests unitaires et d'échantillons; que je cherche à distribuer. J'ai cherché, mais je n'ai trouvé aucun moyen simple/facile de créer un script d'installation. J'ai regardé d'autres paquets tels que Tclx et on dirait qu'ils utilisent autotools - un territoire intact pour moi. Alors, autotools est-il le seul moyen? Mes plates-formes cibles sont pour la plupart des Mac et Linux, mais pourraient s'étendre à Windows dans le futur.Comment créer un script d'installation pour le package Tcl

+1

Si elle est pure extension Tcl alors vous devriez jeter un oeil à l'installateur tcllib. Afaik Tcllib utilise à la fois: une approche autoconf et un installateur.tcl –

Répondre

1

Il semble que je doive créer mon propre script de configuration. À l'heure actuelle, il est très brut: copier des fichiers à un emplacement. Ça marche pour moi maintenant. Je vais continuer à améliorer mon script de configuration pour corriger les bogues et ajouter des fonctionnalités en cas de besoin. Voici mon 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" 
Questions connexes