summaryrefslogtreecommitdiffstats
path: root/skeletons
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2022-03-07 14:43:44 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2022-03-07 14:43:44 +0100
commitcbcab8684e06379c9f5c51cfc9cac68d8684fe0c (patch)
treed03b04e9a7f8e3aae70e590953408f90deed077c /skeletons
parent721a7ea65d23e7b149ba73968a1d75727a55b390 (diff)
downloadvim-cbcab8684e06379c9f5c51cfc9cac68d8684fe0c.zip
vim-cbcab8684e06379c9f5c51cfc9cac68d8684fe0c.tar.gz
move to old
Diffstat (limited to 'skeletons')
-rw-r--r--skeletons/Makefile.erb18
-rw-r--r--skeletons/Makefile.lou.erb39
-rw-r--r--skeletons/README.erb62
-rw-r--r--skeletons/__init__.py.erb5
-rw-r--r--skeletons/awk.erb9
-rw-r--r--skeletons/awk.hdr12
-rw-r--r--skeletons/c.erb9
-rw-r--r--skeletons/c.hdr9
-rw-r--r--skeletons/c_header.erb20
-rw-r--r--skeletons/cst.erb14
-rw-r--r--skeletons/eo.erb51
-rw-r--r--skeletons/html.erb19
-rw-r--r--skeletons/java.erb66
-rw-r--r--skeletons/lout.erb43
-rw-r--r--skeletons/main.c.erb134
-rw-r--r--skeletons/main.h.erb26
-rw-r--r--skeletons/opt_parse.py.erb60
-rw-r--r--skeletons/pir.erb5
-rw-r--r--skeletons/python.erb42
-rw-r--r--skeletons/python.hdr13
-rw-r--r--skeletons/ruby.erb12
-rw-r--r--skeletons/ruby.hdr14
-rw-r--r--skeletons/setup.py.erb28
-rw-r--r--skeletons/setup.rb.erb1596
-rw-r--r--skeletons/sh.erb32
-rw-r--r--skeletons/sh.hdr12
-rw-r--r--skeletons/tex.erb74
-rw-r--r--skeletons/wxApp.py.erb126
28 files changed, 0 insertions, 2550 deletions
diff --git a/skeletons/Makefile.erb b/skeletons/Makefile.erb
deleted file mode 100644
index ac7e0a6..0000000
--- a/skeletons/Makefile.erb
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-CC = gcc
-STD = _GNU_SOURCE
-OBJS = A.o test.o B.o
-CFLAGS = -D__TZURTCH__
-BIN = binary
-
-.PHONY: clean
-
-.c.o:
- $(CC) -c -Wall -I. $(CFLAGS) -D$(STD) -o $@ $<
-
-all: $(OBJS)
- $(CC) $(OBJS) -o $@
-
-clean:
- rm -f *~ *.o core $(BIN)
diff --git a/skeletons/Makefile.lou.erb b/skeletons/Makefile.lou.erb
deleted file mode 100644
index bb2cec6..0000000
--- a/skeletons/Makefile.lou.erb
+++ /dev/null
@@ -1,39 +0,0 @@
-
-# USER VAR
-MAIN=file_name
-LOUT_FILES=${MAIN}.lou
-#
-
-LOUT_MAIN=${MAIN}.lou
-PSNAME=${MAIN}.ps
-PDFNAME=${MAIN}.pdf
-
-AWK=gawk
-LOUT=lout
-PS2PDF=ps2pdf
-
-.SUFFIXES: .lout .lou
-
-all: $(PSNAME) $(PDFNAME)
-
-utf8_lat1:
- @( \
- echo '#! /bin/sh'; \
- echo 'file $$1 | grep UTF-8 >/dev/null'; \
- echo 'if [ $$? -eq 0 ]; then'; \
- echo ' iconv --from utf8 --to iso88591 $$1 > $$(basename $$1 .lou).lat1'; \
- echo 'else'; \
- echo ' cp $$1 $$(basename $$1 .lou).lat1'; \
- echo 'fi'; \
- ) > utf8_lat1
- @chmod 755 utf8_lat1
-
-$(PSNAME): utf8_lat1 $(LOUT_FILES)
- $(LOUT) -r3 -o $(PSNAME) $(LOUT_MAIN)
-
-$(PDFNAME): $(PSNAME)
- $(PS2PDF) $(PSNAME)
-
-clean:
- @rm *.ps *.ld *.li *.lix *.lat1 *~ utf8_lout utf8_lat1 2>/dev/null
-
diff --git a/skeletons/README.erb b/skeletons/README.erb
deleted file mode 100644
index e4e3bed..0000000
--- a/skeletons/README.erb
+++ /dev/null
@@ -1,62 +0,0 @@
-
-<%= `figlet -c README` %>
-<%# figlet: http://www.figlet.org %>
-
-This is <%= @project %>, version %VERSION%
------------------------------
-
-<%=@project %> is Copyright (C) <%=@year %>-<%=@year.to_i+5%>, <%= @username %>. <<%= @email %>>
-
-LICENSE INFORMATION
--------------------
-
-<%= license %>
-
-PREREQUISITES
--------------
-
-You'll need a C compiler, a linker and a make program of course.
-
-INSTRUCTIONS
-------------
-
-For now, unpack your <%= @project %> tarball, (if you're reading this, you've
-probably already done that) and type
-
- ./configure
-
-If you are self confident you may try the following to have more power on compilation process
-
- ./configure --help
-
-
-Next, run make:
-
-You can test <%= @project %> by running
-
- make test
-
-On some systems you can install <%= @project %>:
-
- make install
-
-NOTES
------
-
-CHANGES
--------
-
-For documentation on the user-visible changes between this version and
-previous versions, please see CHANGES.
-
-MAILING LISTS
--------------
-
-Subscribe to the mailing list for <%= @project %> by sending mail to
-%MAILING_LIST%.
-
-WEB SITES
----------
-
-The home page for <%= @project %> is %HOME_PAGE%
-
diff --git a/skeletons/__init__.py.erb b/skeletons/__init__.py.erb
deleted file mode 100644
index a020661..0000000
--- a/skeletons/__init__.py.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-<%= header 'python.hdr' %>
-
-__all__ = [
- ]
-
diff --git a/skeletons/awk.erb b/skeletons/awk.erb
deleted file mode 100644
index 86d52a1..0000000
--- a/skeletons/awk.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<%= header 'awk.hdr' %>
-
-BEGIN { }
-
-{
-print "line "NR" has "NF" fields.";
-}
-
-END { print "line number : "NR }
diff --git a/skeletons/awk.hdr b/skeletons/awk.hdr
deleted file mode 100644
index d11305a..0000000
--- a/skeletons/awk.hdr
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/gawk
-
-#----------------------------------------------------------------------------
-#
-# File : <%= @filename %>
-# Author : <%= @username %> <<%= @email %>>
-# Date : <%= @now %>
-# License :
-#
-<%= license '# '%>
-#
-#----------------------------------------------------------------------------
diff --git a/skeletons/c.erb b/skeletons/c.erb
deleted file mode 100644
index e3df5f4..0000000
--- a/skeletons/c.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<%= header 'c.hdr' %>
-
-#include <stdio.h>
-
-int hello() {
- printf ("hello world");
- return 0;
-}
-
diff --git a/skeletons/c.hdr b/skeletons/c.hdr
deleted file mode 100644
index a88f90e..0000000
--- a/skeletons/c.hdr
+++ /dev/null
@@ -1,9 +0,0 @@
-/*
- * File : <%= @filename %>
- * Author : <%= @username %> <<%= @email %>>
- * Date : <%= @now %>
- * License :
- *
-<%= license ' * '%>
- *
- */
diff --git a/skeletons/c_header.erb b/skeletons/c_header.erb
deleted file mode 100644
index 2ef9092..0000000
--- a/skeletons/c_header.erb
+++ /dev/null
@@ -1,20 +0,0 @@
-<%= header 'c.hdr' %>
-
-<% define=File.basename( @filename ).upcase!.sub!('.', '_' ) %>
-
-#ifndef _<%= define %>_
-#define _<%= define %>_
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * Feed me
- */
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _<%= define %>_ */
diff --git a/skeletons/cst.erb b/skeletons/cst.erb
deleted file mode 100644
index db59692..0000000
--- a/skeletons/cst.erb
+++ /dev/null
@@ -1,14 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <title>My Page</title>
- <meta name="Identifier-URL" content="http://XXXX/<%= @filename %>">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <meta name="Author" lang="en" content="<%= @username %>">
- <meta name="Description" content="">
- <meta name="Keywords" lang="en" content="">
- <link rel="stylesheet" type="text/css" href="">
- </head>
- <body>
- </body>
-</html>
diff --git a/skeletons/eo.erb b/skeletons/eo.erb
deleted file mode 100644
index 28b66f7..0000000
--- a/skeletons/eo.erb
+++ /dev/null
@@ -1,51 +0,0 @@
-classs <%= @class_name %>(Eo_Base)
-{
- legacy_prefix: null;
- eo_prefix: <%= @class_name.downcase %>;
- data: <%= @class_name+"_Protected_Data" %>;
- properties {
- attribute
- set {
- /*@
- @brief Blah blah blîh, blah blah . */
- }
- get {
- /*@
- @brief blob.
-
- Values @c blob.
-
- Example:
- @dontinclude <%= @class_name.downcase %>-example.c
- @skip <%= @class_name.downcase %>_attribute_set
- @until return
-
- @see something */
- }
- values {
- Eina_Bool value; /*@ The attribute itself. */
- }
- }
- }
- methods {
- part_table_clear {
- /*@
- @brief Does something.
-
- @return @c EINA_TRUE on suceess, @c EINA_FALSE on failure
-
- this realy does something, believe me. */
-
- return Eina_Bool;
- params {
- @in const char *part; /*@ The part name */
- @in Eina_Bool maybe; /*@ If set, it will maybe do something else */
- }
- }
- }
- implements {
- Eo_Base::constructor;
- Eo_Base::destructor;
- Eo_Base::dbg_info_get;
- }
-}
diff --git a/skeletons/html.erb b/skeletons/html.erb
deleted file mode 100644
index 14073f5..0000000
--- a/skeletons/html.erb
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
-<html>
- <head>
- <title>My Page</title>
- <meta name="Identifier-URL" content="http://XXXX/<%= @filename %>">
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <meta name="Author" lang="en" content="<%= @username %>">
- <meta name="Description" content="">
- <meta name="Keywords" lang="en" content="">
- <!-- <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"> -->
- <!-- <link rel="stylesheet" type="text/css" href=""> -->
- <!-- <script type="text/javascript" src=""></script> -->
- <!-- <%= @filename %> <%= @now %> -->
- </head>
- <body>
- <h1>Hello World</h1>
- </body>
-</html>
diff --git a/skeletons/java.erb b/skeletons/java.erb
deleted file mode 100644
index f0ec54a..0000000
--- a/skeletons/java.erb
+++ /dev/null
@@ -1,66 +0,0 @@
-/* vim: set expandtab tabstop=4 shiftwidth=4 : */
-
-// package pkgname;
-
-import java.io.File;
-import java.util.Date;
-import jargs.gnu.CmdLineParser;
-
-/**
- * Class <%= @class_name %>
- *
- * @author <% @username %> <<%= @email %>>
- * @date <%= @now %>
- */
-public class <%= @class_name %> {
-
- /*
- * print usage and exit with status 1
- */
- private static void printUsage()
- {
- System.err.println("Usage : <%= @class_name %> [{-d, --debug} a_float] [ --input file_name]");
- System.err.println(" debug : debug verbosity");
- System.err.println(" input : path to input file");
- }
-
- /**
- * application entry point
- */
- public static void main(String [] args )
- {
-
- CmdLineParser parser = new CmdLineParser();
- CmdLineParser.Option debug = parser.addIntegerOption('d',"debug");
- CmdLineParser.Option input = parser.addStringOption("input");
-
- try {
- parser.parse(args);
- } catch (CmdLineParser.OptionException e) {
- System.err.println("\n"+e.getMessage());
- printUsage();
- System.exit(2);
- }
-
- int debugLevel = ((Integer)parser.getOptionValue(debug,new Integer(0))).intValue();
- String inputFile = (String)parser.getOptionValue(input);
-
- if (debugLevel>0) {
- System.out.println("Debug Trace :");
- System.out.println("\t"+new Date( ) );
- System.out.println("\tdebug level : "+debugLevel);
- System.out.println("\texcel file : "+inputFile);
- }
-
- if (inputFile!=null && !inputFile.equals("")) {
- File f = new File(inputFile);
- if(!f.canRead()){
- System.err.println("Fatal Error : Unable to read "+inputFile);
- System.exit(1);
- }
- }
-
- System.exit(0);
- }
-}
-
diff --git a/skeletons/lout.erb b/skeletons/lout.erb
deleted file mode 100644
index 9c88cd7..0000000
--- a/skeletons/lout.erb
+++ /dev/null
@@ -1,43 +0,0 @@
-#@SysInclude { eq }
-#@SysInclude { tab }
-#@SysInclude { fig }
-@SysInclude { report }
-
-@Report
- @Title { }
- @Author { Jérémy Zurcher }
- @Institution { }
- @DateLine { <%= "#{Time.now.strftime '%d, %m, %Y'}" %> }
- @InitialLanguage { French }
- @OptimizePages { Yes }
- @AbstractTitle { }
- @Abstract { }
-//
-@Section
- @Title { Section }
- @RunningTitle { Section }
-@Begin
-@PP
-Hello World 1
-@PP
-Hello World 2 Hello World 2
-@BeginSubSections
-@SubSection
- @Title { SubSection }
- @RunningTitle { Subsection }
-@Begin
-@PP
-Hello World 3 Hello World 3 Hello World 3 Hello World 3
-@BeginSubSubSections
-@SubSubSection
- @Title { SubSubSection }
- @RunningTitle { SubSubSection }
-@Begin
-@PP
-Hello World 4 Hello World 4 Hello World 4 Hello World 4 Hello World 4 Hello World 4 Hello World 4 Hello World 4
-@End @SubSubSection
-@EndSubSubSections
-@End @SubSection
-@EndSubSections
-@End @Section
-
diff --git a/skeletons/main.c.erb b/skeletons/main.c.erb
deleted file mode 100644
index 1767fbf..0000000
--- a/skeletons/main.c.erb
+++ /dev/null
@@ -1,134 +0,0 @@
-<%= header 'c.hdr' %>
-
-#include "main.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <stdarg.h>
-#include <string.h>
-#include <getopt.h>
-
-
-static int verbose = 0;
-
-/**
- * my_error - print an error message on stderr then : if(code) exit(code)
- */
-static void my_error( int code, const char *fmt, ... )
-{
- va_list ap;
-
- if ( *fmt ) {
- va_start( ap, fmt );
- (void)vfprintf( stderr, fmt, ap );
- va_end( ap );
- fmt += strlen( fmt );
- if ( fmt[-1] != '\n' )
- (void) fputc( '\n', stderr );
- }
- if( code ) exit( code );
- /* NOTREACHED */
-}
-
-
-/**
- * usage - print usage on stderr
- */
-static void usage( const char *program_name, const char* optstring )
-{
- fprintf( stderr, "usage : %s [-%s]\n", program_name, optstring );
- fprintf( stderr, "\t --verbose (-v) : verbose mode.\n"
- "\t --version (-V) : print version number.\n"
- "\t --help (-h) : print this screen.\n"
- "\t --arg (-a) <arg> : a numeric argument.\n"
- "\n" );
-}
-
-
-/**
- * MAIN
- */
-int main( int argc, char **argv )
-{
- int optch; /* returned by getopts_long */
- int index; /* index of longopts[] */
-
- int a;
-
- /**
- * name - has_arg (bool) - flag (int *) - val (int)
- *
- * if(!longopts[x].flag)
- * return longopts[x].val;
- * else
- * *(longopts[x].flag) = longopts[x].val;
- * return 0;
- *
- */
- static struct option longopts[] = {
- { "help", 0, 0, 'h' },
- { "version", 0, 0, 'V' },
- { "verbose", 0, &verbose, 1 },
- { "arg", 1, 0, 'a' },
- { 0, 0, 0, 0, }
- };
-
- static char *optstring = "hvVa:";
-
- static const char *program_name = PACKAGE_NAME;
- /*
- const char *program_name = file_name( argv[0] );
- */
-
- opterr=0; /* no default advise for bad options */
- optind=0;
-
- a=0;
-
-#ifdef DEBUG
- printf( "DEBUG mode is set.\n" );
-#endif
-
- /* process options */
- while( ( optch = getopt_long( argc, argv, optstring, longopts, &index ) ) !=-1 ) {
- switch( optch ){
- case 'h':
- usage( program_name, optstring );
- return EXIT_FAILURE;
- case 'V':
- fprintf( stdout, " %s version : %s\n", program_name, VERSION );
- return EXIT_FAILURE;
- case 'v':
- verbose = 1;
- break;
- case 'a':
- a = atoi( optarg );
- break;
- case 0:
- /* longopt used flag */
- break;
- default:
- my_error(EXIT_FAILURE,"invalid option %s\n\ttype : %s --help\n",argv[optind-1],program_name);
- }
- }
-
- printf("a : %d\n",a);
-
- /* process other arguments */
- while(optind<argc){
- printf("argv[%d]='%s'\n",optind,argv[optind]);
- optind++;
- }
-
- if(verbose)printf("verbose mode is set.\n");
-
- /**
- * insert some fucking code here.
- */
-
- /* end reached */
- return EXIT_SUCCESS;
-}
-
-
diff --git a/skeletons/main.h.erb b/skeletons/main.h.erb
deleted file mode 100644
index 3f0baf7..0000000
--- a/skeletons/main.h.erb
+++ /dev/null
@@ -1,26 +0,0 @@
-<%= header 'c.hdr' %>
-
-
-#ifndef _MAIN_
-#define _MAIN_ 1
-
-# ifdef __cplusplus
-extern "C" {
-# endif /* __cplusplus */
-
-#define VERSION "version"
-#define PACKAGE_NAME "package_name"
-
-#ifdef HAVE_CONFIG_H
- #include "config.h"
-/*
-#else
- #error "no config.h"
-*/
-#endif
-
-# ifdef __cplusplus
-}
-# endif /* __cplusplus */
-
-# endif /* _MAIN_ */
diff --git a/skeletons/opt_parse.py.erb b/skeletons/opt_parse.py.erb
deleted file mode 100644
index 658f9c0..0000000
--- a/skeletons/opt_parse.py.erb
+++ /dev/null
@@ -1,60 +0,0 @@
-<%= header 'python.hdr' %>
-
-""" Module Description """
-
-#----------------------------------------------------------------------------
-
-__version__ = '0.1.0'
-
-#----------------------------------------------------------------------------
-
-#import
-
-#----------------------------------------------------------------------------
-
-__all__ = [
- '<%= @filename_base %>'
- ]
-
-#----------------------------------------------------------------------------
-class <%= @filename_base %>:
-
- def __init__( self, parser, options ):
- self.parser = parser
- self.options = options
-
-#----------------------------------------------------------------------------
-def my_callback( option, opt, value, parser ):
- print "option : %s" % option
- print "opt : %s" % opt
- print "value : %s" % value
- print "parser : %s" % parser
-
-#----------------------------------------------------------------------------
-def main( ):
- from optparse import OptionParser
- parser = OptionParser( usage="usage : %prog [-h] [-v]", version= "%prog version " + __version__ )
-# action store store_true store_false store_const append count callback help
-# type string int long choice float complex
-# dest action="store*"
-# default
-# nargs int
-# const action="store_const"
-# choices
-# callback
-# callback_args
-# callback_kwargs
-# help help tring
-# metavar
- parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="produces noisy outputs." )
- parser.add_option("-c", "--callback", action="callback", callback=my_callback, help="print callback args" )
- parser.add_option("-s", "--string", action="store", type="string", dest="string", help="memorize a string" )
- ( options, args) = parser.parse_args( )
- print 'verbose : %s' % options.verbose
- return 0
-
-#----------------------------------------------------------------------------
-
-if __name__ == '__main__':
- import sys
- sys.exit( main( ) )
diff --git a/skeletons/pir.erb b/skeletons/pir.erb
deleted file mode 100644
index 9415dd0..0000000
--- a/skeletons/pir.erb
+++ /dev/null
@@ -1,5 +0,0 @@
-
-# TODO perl like header
-
-.sub main :main
-.end
diff --git a/skeletons/python.erb b/skeletons/python.erb
deleted file mode 100644
index 1e51c7b..0000000
--- a/skeletons/python.erb
+++ /dev/null
@@ -1,42 +0,0 @@
-<%= header 'python.hdr' %>
-
-""" Module Description """
-
-#----------------------------------------------------------------------------
-
-__version__ = '0.1.0'
-
-#----------------------------------------------------------------------------
-
-#import
-
-#----------------------------------------------------------------------------
-
-__all__ = [
- '<%= @class_name %>'
- ]
-
-#----------------------------------------------------------------------------
-class <%= @class_name %>:
-
- def __init__( self ):
- pass
-
-#----------------------------------------------------------------------------
-def usage():
- import os.path
- name = os.path.basename( sys.argv[0] )
- print '\tusage : %s ' % ( name )
- return 1
-
-#----------------------------------------------------------------------------
-def main( ):
- return 0
-
-#----------------------------------------------------------------------------
-
-if __name__ == '__main__':
- import sys
- if len(sys.argv)<1:
- sys.exit( usage() )
- sys.exit( main( ) )
diff --git a/skeletons/python.hdr b/skeletons/python.hdr
deleted file mode 100644
index d08d9fe..0000000
--- a/skeletons/python.hdr
+++ /dev/null
@@ -1,13 +0,0 @@
-#! /usr/bin/env python
-# -*- coding: utf-8 -*-
-
-#----------------------------------------------------------------------------
-#
-# File : <%= @filename %>
-# Author : <%= @username %> <<%= @email %>>
-# Date : <%= @now %>
-# License :
-#
-<%= license '# '%>
-#
-#----------------------------------------------------------------------------
diff --git a/skeletons/ruby.erb b/skeletons/ruby.erb
deleted file mode 100644
index b31ddda..0000000
--- a/skeletons/ruby.erb
+++ /dev/null
@@ -1,12 +0,0 @@
-<%= header 'ruby.hdr' %>
-#
-module <%= @class_name %>
- class <%= @class_name %>
- end
-end
-#
-if __FILE__ == $0
- t = <%= @class_name %>::<%= @class_name %>.new
-end
-#
-# EOF
diff --git a/skeletons/ruby.hdr b/skeletons/ruby.hdr
deleted file mode 100644
index 1314e75..0000000
--- a/skeletons/ruby.hdr
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /usr/bin/env ruby
-# -*- coding: UTF-8 -*-
-
-#----------------------------------------------------------------------------
-#
-# File : <%= @filename %>
-# Author : <%= @username %> <<%= @email %>>
-# Date : <%= @now %>
-# License :
-#
-<%= license '# ' %>
-#
-#----------------------------------------------------------------------------
-
diff --git a/skeletons/setup.py.erb b/skeletons/setup.py.erb
deleted file mode 100644
index 90ef208..0000000
--- a/skeletons/setup.py.erb
+++ /dev/null
@@ -1,28 +0,0 @@
-<%= header 'python.hdr' %>
-
-""" Distutils script """
-
-#----------------------------------------------------------------------------
-
-from distutils.core import setup
-
-#----------------------------------------------------------------------------
-
-
-setup (
- name='DistName',
- version='1.0',
- description='package description',
- long_description='package long description',
- author='<%= @username %>',
- author_email='<%= @email %>',
- maintainer='<%= @username %>',
- maintainer_email='<%= @email %>',
- url='<%= @webiste %>',
- download_url='<%= @website %>',
- package_dir = { '':'lib' },
- packages = [ 'pack1', 'pack2', 'pack2.sub' ],
- classifiers= [
- 'Programming Language :: Python'
- ]
- )
diff --git a/skeletons/setup.rb.erb b/skeletons/setup.rb.erb
deleted file mode 100644
index c0b6da7..0000000
--- a/skeletons/setup.rb.erb
+++ /dev/null
@@ -1,1596 +0,0 @@
-#
-# setup.rb
-#
-# Copyright (c) 2000-2006 Minero Aoki
-#
-# This program is free software.
-# You can distribute/modify this program under the terms of
-# the GNU LGPL, Lesser General Public License version 2.1.
-#
-
-unless Enumerable.method_defined?(:map) # Ruby 1.4.6
- module Enumerable
- alias map collect
- end
-end
-
-unless File.respond_to?(:read) # Ruby 1.6
- def File.read(fname)
- open(fname) {|f|
- return f.read
- }
- end
-end
-
-unless Errno.const_defined?(:ENOTEMPTY) # Windows?
- module Errno
- class ENOTEMPTY
- # We do not raise this exception, implementation is not needed.
- end
- end
-end
-
-def File.binread(fname)
- open(fname, 'rb') {|f|
- return f.read
- }
-end
-
-# for corrupted Windows' stat(2)
-def File.dir?(path)
- File.directory?((path[-1,1] == '/') ? path : path + '/')
-end
-
-
-class ConfigTable
-
- include Enumerable
-
- def initialize(rbconfig)
- @rbconfig = rbconfig
- @items = []
- @table = {}
- # options
- @install_prefix = nil
- @config_opt = nil
- @verbose = true
- @no_harm = false
- end
-
- attr_accessor :install_prefix
- attr_accessor :config_opt
-
- attr_writer :verbose
-
- def verbose?
- @verbose
- end
-
- attr_writer :no_harm
-
- def no_harm?
- @no_harm
- end
-
- def [](key)
- lookup(key).resolve(self)
- end
-
- def []=(key, val)
- lookup(key).set val
- end
-
- def names
- @items.map {|i| i.name }
- end
-
- def each(&block)
- @items.each(&block)
- end
-
- def key?(name)
- @table.key?(name)
- end
-
- def lookup(name)
- @table[name] or setup_rb_error "no such config item: #{name}"
- end
-
- def add(item)
- @items.push item
- @table[item.name] = item
- end
-
- def remove(name)
- item = lookup(name)
- @items.delete_if {|i| i.name == name }
- @table.delete_if {|name, i| i.name == name }
- item
- end
-
- def load_script(path, inst = nil)
- if File.file?(path)
- MetaConfigEnvironment.new(self, inst).instance_eval File.read(path), path
- end
- end
-
- def savefile
- '.config'
- end
-
- def load_savefile
- begin
- File.foreach(savefile()) do |line|
- k, v = *line.split(/=/, 2)
- self[k] = v.strip
- end
- rescue Errno::ENOENT
- setup_rb_error $!.message + "\n#{File.basename($0)} config first"
- end
- end
-
- def save
- @items.each {|i| i.value }
- File.open(savefile(), 'w') {|f|
- @items.each do |i|
- f.printf "%s=%s\n", i.name, i.value if i.value? and i.value
- end
- }
- end
-
- def load_standard_entries
- standard_entries(@rbconfig).each do |ent|
- add ent
- end
- end
-
- def standard_entries(rbconfig)
- c = rbconfig
-
- rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT'])
-
- major = c['MAJOR'].to_i
- minor = c['MINOR'].to_i
- teeny = c['TEENY'].to_i
- version = "#{major}.#{minor}"
-
- # ruby ver. >= 1.4.4?
- newpath_p = ((major >= 2) or
- ((major == 1) and
- ((minor >= 5) or
- ((minor == 4) and (teeny >= 4)))))
-
- if c['rubylibdir']
- # V > 1.6.3
- libruby = "#{c['prefix']}/lib/ruby"
- librubyver = c['rubylibdir']
- librubyverarch = c['archdir']
- siteruby = c['sitedir']
- siterubyver = c['sitelibdir']
- siterubyverarch = c['sitearchdir']
- elsif newpath_p
- # 1.4.4 <= V <= 1.6.3
- libruby = "#{c['prefix']}/lib/ruby"
- librubyver = "#{c['prefix']}/lib/ruby/#{version}"
- librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
- siteruby = c['sitedir']
- siterubyver = "$siteruby/#{version}"
- siterubyverarch = "$siterubyver/#{c['arch']}"
- else
- # V < 1.4.4
- libruby = "#{c['prefix']}/lib/ruby"
- librubyver = "#{c['prefix']}/lib/ruby/#{version}"
- librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
- siteruby = "#{c['prefix']}/lib/ruby/#{version}/site_ruby"
- siterubyver = siteruby
- siterubyverarch = "$siterubyver/#{c['arch']}"
- end
- parameterize = lambda {|path|
- path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix')
- }
-
- if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg }
- makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
- else
- makeprog = 'make'
- end
-
- [
- ExecItem.new('installdirs', 'std/site/home',
- 'std: install under libruby; site: install under site_ruby; home: install under $HOME')\
- {|val, table|
- case val
- when 'std'
- table['rbdir'] = '$librubyver'
- table['sodir'] = '$librubyverarch'
- when 'site'
- table['rbdir'] = '$siterubyver'
- table['sodir'] = '$siterubyverarch'
- when 'home'
- setup_rb_error '$HOME was not set' unless ENV['HOME']
- table['prefix'] = ENV['HOME']
- table['rbdir'] = '$libdir/ruby'
- table['sodir'] = '$libdir/ruby'
- end
- },
- PathItem.new('prefix', 'path', c['prefix'],
- 'path prefix of target environment'),
- PathItem.new('bindir', 'path', parameterize.call(c['bindir']),
- 'the directory for commands'),
- PathItem.new('libdir', 'path', parameterize.call(c['libdir']),
- 'the directory for libraries'),
- PathItem.new('datadir', 'path', parameterize.call(c['datadir']),
- 'the directory for shared data'),
- PathItem.new('mandir', 'path', parameterize.call(c['mandir']),
- 'the directory for man pages'),
- PathItem.new('sysconfdir', 'path', parameterize.call(c['sysconfdir']),
- 'the directory for system configuration files'),
- PathItem.new('localstatedir', 'path', parameterize.call(c['localstatedir']),
- 'the directory for local state data'),
- PathItem.new('libruby', 'path', libruby,
- 'the directory for ruby libraries'),
- PathItem.new('librubyver', 'path', librubyver,
- 'the directory for standard ruby libraries'),
- PathItem.new('librubyverarch', 'path', librubyverarch,
- 'the directory for standard ruby extensions'),
- PathItem.new('siteruby', 'path', siteruby,
- 'the directory for version-independent aux ruby libraries'),
- PathItem.new('siterubyver', 'path', siterubyver,
- 'the directory for aux ruby libraries'),
- PathItem.new('siterubyverarch', 'path', siterubyverarch,
- 'the directory for aux ruby binaries'),
- PathItem.new('rbdir', 'path', '$siterubyver',
- 'the directory for ruby scripts'),
- PathItem.new('sodir', 'path', '$siterubyverarch',
- 'the directory for ruby extentions'),
- PathItem.new('rubypath', 'path', rubypath,
- 'the path to set to #! line'),
- ProgramItem.new('rubyprog', 'name', rubypath,
- 'the ruby program using for installation'),
- ProgramItem.new('makeprog', 'name', makeprog,
- 'the make program to compile ruby extentions'),
- SelectItem.new('shebang', 'all/ruby/never', 'ruby',
- 'shebang line (#!) editing mode'),
- BoolItem.new('without-ext', 'yes/no', 'no',
- 'does not compile/install ruby extentions')
- ]
- end
- private :standard_entries
-
- def load_multipackage_entries
- multipackage_entries().each do |ent|
- add ent
- end
- end
-
- def multipackage_entries
- [
- PackageSelectionItem.new('with', 'name,name...', '', 'ALL',
- 'package names that you want to install'),
- PackageSelectionItem.new('without', 'name,name...', '', 'NONE',
- 'package names that you do not want to install')
- ]
- end
- private :multipackage_entries
-
- ALIASES = {
- 'std-ruby' => 'librubyver',
- 'stdruby' => 'librubyver',
- 'rubylibdir' => 'librubyver',
- 'archdir' => 'librubyverarch',
- 'site-ruby-common' => 'siteruby', # For backward compatibility
- 'site-ruby' => 'siterubyver', # For backward compatibility
- 'bin-dir' => 'bindir',
- 'bin-dir' => 'bindir',
- 'rb-dir' => 'rbdir',
- 'so-dir' => 'sodir',
- 'data-dir' => 'datadir',
- 'ruby-path' => 'rubypath',
- 'ruby-prog' => 'rubyprog',
- 'ruby' => 'rubyprog',
- 'make-prog' => 'makeprog',
- 'make' => 'makeprog'
- }
-
- def fixup
- ALIASES.each do |ali, name|
- @table[ali] = @table[name]
- end
- end
-
- def options_re
- /\A--(#{@table.keys.join('|')})(?:=(.*))?\z/
- end
-
- def parse_opt(opt)
- m = options_re().match(opt) or setup_rb_error "config: unknown option #{opt}"
- m.to_a[1,2]
- end
-
- def dllext
- @rbconfig['DLEXT']
- end
-
- def value_config?(name)
- lookup(name).value?
- end
-
- class Item
- def initialize(name, template, default, desc)
- @name = name.freeze
- @template = template
- @value = default
- @default = default
- @description = desc
- end
-
- attr_reader :name
- attr_reader :description
-
- attr_accessor :default
- alias help_default default
-
- def help_opt
- "--#{@name}=#{@template}"
- end
-
- def value?
- true
- end
-
- def value
- @value
- end
-
- def resolve(table)
- @value.gsub(%r<\$([^/]+)>) { table[$1] }
- end
-
- def set(val)
- @value = check(val)
- end
-
- private
-
- def check(val)
- setup_rb_error "config: --#{name} requires argument" unless val
- val
- end
- end
-
- class BoolItem < Item
- def config_type
- 'bool'
- end
-
- def help_opt
- "--#{@name}"
- end
-
- private
-
- def check(val)
- return 'yes' unless val
- case val
- when /\Ay(es)?\z/i, /\At(rue)?\z/i then 'yes'
- when /\An(o)?\z/i, /\Af(alse)\z/i then 'no'
- else
- setup_rb_error "config: --#{@name} accepts only yes/no for argument"
- end
- end
- end
-
- class PathItem < Item
- def config_type
- 'path'
- end
-
- private
-
- def check(path)
- setup_rb_error "config: --#{@name} requires argument" unless path
- path[0,1] == '$' ? path : File.expand_path(path)
- end
- end
-
- class ProgramItem < Item
- def config_type
- 'program'
- end
- end
-
- class SelectItem < Item
- def initialize(name, selection, default, desc)
- super
- @ok = selection.split('/')
- end
-
- def config_type
- 'select'
- end
-
- private
-
- def check(val)
- unless @ok.include?(val.strip)
- setup_rb_error "config: use --#{@name}=#{@template} (#{val})"
- end
- val.strip
- end
- end
-
- class ExecItem < Item
- def initialize(name, selection, desc, &block)
- super name, selection, nil, desc
- @ok = selection.split('/')
- @action = block
- end
-
- def config_type
- 'exec'
- end
-
- def value?
- false
- end
-
- def resolve(table)
- setup_rb_error "$#{name()} wrongly used as option value"
- end
-
- undef set
-
- def evaluate(val, table)
- v = val.strip.downcase
- unless @ok.include?(v)
- setup_rb_error "invalid option --#{@name}=#{val} (use #{@template})"
- end
- @action.call v, table
- end
- end
-
- class PackageSelectionItem < Item
- def initialize(name, template, default, help_default, desc)
- super name, template, default, desc
- @help_default = help_default
- end
-
- attr_reader :help_default
-
- def config_type
- 'package'
- end
-
- private
-
- def check(val)
- unless File.dir?("packages/#{val}")
- setup_rb_error "config: no such package: #{val}"
- end
- val
- end
- end
-
- class MetaConfigEnvironment
- def initialize(config, installer)
- @config = config
- @installer = installer
- end
-
- def config_names
- @config.names
- end
-
- def config?(name)
- @config.key?(name)
- end
-
- def bool_config?(name)
- @config.lookup(name).config_type == 'bool'
- end
-
- def path_config?(name)
- @config.lookup(name).config_type == 'path'
- end
-
- def value_config?(name)
- @config.lookup(name).config_type != 'exec'
- end
-
- def add_config(item)
- @config.add item
- end
-
- def add_bool_config(name, default, desc)
- @config.add BoolItem.new(name, 'yes/no', default ? 'yes' : 'no', desc)
- end
-
- def add_path_config(name, default, desc)
- @config.add PathItem.new(name, 'path', default, desc)
- end
-
- def set_config_default(name, default)
- @config.lookup(name).default = default
- end
-
- def remove_config(name)
- @config.remove(name)
- end
-
- # For only multipackage
- def packages
- raise '[setup.rb fatal] multi-package metaconfig API packages() called for single-package; contact application package vendor' unless @installer
- @installer.packages
- end
-
- # For only multipackage
- def declare_packages(list)
- raise '[setup.rb fatal] multi-package metaconfig API declare_packages() called for single-package; contact application package vendor' unless @installer
- @installer.packages = list
- end
- end
-
-end # class ConfigTable
-
-
-# This module requires: #verbose?, #no_harm?
-module FileOperations
-
- def mkdir_p(dirname, prefix = nil)
- dirname = prefix + File.expand_path(dirname) if prefix
- $stderr.puts "mkdir -p #{dirname}" if verbose?
- return if no_harm?
-
- # Does not check '/', it's too abnormal.
- dirs = File.expand_path(dirname).split(%r<(?=/)>)
- if /\A[a-z]:\z/i =~ dirs[0]
- disk = dirs.shift
- dirs[0] = disk + dirs[0]
- end
- dirs.each_index do |idx|
- path = dirs[0..idx].join('')
- Dir.mkdir path unless File.dir?(path)
- end
- end
-
- def rm_f(path)
- $stderr.puts "rm -f #{path}" if verbose?
- return if no_harm?
- force_remove_file path
- end
-
- def rm_rf(path)
- $stderr.puts "rm -rf #{path}" if verbose?
- return if no_harm?
- remove_tree path
- end
-
- def remove_tree(path)
- if File.symlink?(path)
- remove_file path
- elsif File.dir?(path)
- remove_tree0 path
- else
- force_remove_file path
- end
- end
-
- def remove_tree0(path)
- Dir.foreach(path) do |ent|
- next if ent == '.'
- next if ent == '..'
- entpath = "#{path}/#{ent}"
- if File.symlink?(entpath)
- remove_file entpath
- elsif File.dir?(entpath)
- remove_tree0 entpath
- else
- force_remove_file entpath
- end
- end
- begin
- Dir.rmdir path
- rescue Errno::ENOTEMPTY
- # directory may not be empty
- end
- end
-
- def move_file(src, dest)
- force_remove_file dest
- begin
- File.rename src, dest
- rescue
- File.open(dest, 'wb') {|f|
- f.write File.binread(src)
- }
- File.chmod File.stat(src).mode, dest
- File.unlink src
- end
- end
-
- def force_remove_file(path)
- begin
- remove_file path
- rescue
- end
- end
-
- def remove_file(path)
- File.chmod 0777, path
- File.unlink path
- end
-
- def install(from, dest, mode, prefix = nil)
- $stderr.puts "install #{from} #{dest}" if verbose?
- return if no_harm?
-
- realdest = prefix ? prefix + File.expand_path(dest) : dest
- realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest)
- str = File.binread(from)
- if diff?(str, realdest)
- verbose_off {
- rm_f realdest if File.exist?(realdest)
- }
- File.open(realdest, 'wb') {|f|
- f.write str
- }
- File.chmod mode, realdest
-
- File.open("#{objdir_root()}/InstalledFiles", 'a') {|f|
- if prefix
- f.puts realdest.sub(prefix, '')
- else
- f.puts realdest
- end
- }
- end
- end
-
- def diff?(new_content, path)
- return true unless File.exist?(path)
- new_content != File.binread(path)
- end
-
- def command(*args)
- $stderr.puts args.join(' ') if verbose?
- system(*args) or raise RuntimeError,
- "system(#{args.map{|a| a.inspect }.join(' ')}) failed"
- end
-
- def ruby(*args)
- command config('rubyprog'), *args
- end
-
- def make(task = nil)
- command(*[config('makeprog'), task].compact)
- end
-
- def extdir?(dir)
- File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb")
- end
-
- def files_of(dir)
- Dir.open(dir) {|d|
- return d.select {|ent| File.file?("#{dir}/#{ent}") }
- }
- end
-
- DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn )
-
- def directories_of(dir)
- Dir.open(dir) {|d|
- return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT
- }
- end
-
-end
-
-
-# This module requires: #srcdir_root, #objdir_root, #relpath
-module HookScriptAPI
-
- def get_config(key)
- @config[key]
- end
-
- alias config get_config
-
- # obsolete: use metaconfig to change configuration
- def set_config(key, val)
- @config[key] = val
- end
-
- #
- # srcdir/objdir (works only in the package directory)
- #
-
- def curr_srcdir
- "#{srcdir_root()}/#{relpath()}"
- end
-
- def curr_objdir
- "#{objdir_root()}/#{relpath()}"
- end
-
- def srcfile(path)
- "#{curr_srcdir()}/#{path}"
- end
-
- def srcexist?(path)
- File.exist?(srcfile(path))
- end
-
- def srcdirectory?(path)
- File.dir?(srcfile(path))
- end
-
- def srcfile?(path)
- File.file?(srcfile(path))
- end
-
- def srcentries(path = '.')
- Dir.open("#{curr_srcdir()}/#{path}") {|d|
- return d.to_a - %w(. ..)
- }
- end
-
- def srcfiles(path = '.')
- srcentries(path).select {|fname|
- File.file?(File.join(curr_srcdir(), path, fname))
- }
- end
-
- def srcdirectories(path = '.')
- srcentries(path).select {|fname|
- File.dir?(File.join(curr_srcdir(), path, fname))
- }
- end
-
-end
-
-
-class ToplevelInstaller
-
- Version = '3.4.1'
- Copyright = 'Copyright (c) 2000-2006 Minero Aoki'
-
- TASKS = [
- [ 'all', 'do config, setup, then install' ],
- [ 'config', 'saves your configurations' ],
- [ 'show', 'shows current configuration' ],
- [ 'setup', 'compiles ruby extentions and others' ],
- [ 'install', 'installs files' ],
- [ 'test', 'run all tests in test/' ],
- [ 'clean', "does `make clean' for each extention" ],
- [ 'distclean',"does `make distclean' for each extention" ]
- ]
-
- def ToplevelInstaller.invoke
- config = ConfigTable.new(load_rbconfig())
- config.load_standard_entries
- config.load_multipackage_entries if multipackage?
- config.fixup
- klass = (multipackage?() ? ToplevelInstallerMulti : ToplevelInstaller)
- klass.new(File.dirname($0), config).invoke
- end
-
- def ToplevelInstaller.multipackage?
- File.dir?(File.dirname($0) + '/packages')
- end
-
- def ToplevelInstaller.load_rbconfig
- if arg = ARGV.detect {|arg| /\A--rbconfig=/ =~ arg }
- ARGV.delete(arg)
- load File.expand_path(arg.split(/=/, 2)[1])
- $".push 'rbconfig.rb'
- else
- require 'rbconfig'
- end
- ::Config::CONFIG
- end
-
- def initialize(ardir_root, config)
- @ardir = File.expand_path(ardir_root)
- @config = config
- # cache
- @valid_task_re = nil
- end
-
- def config(key)
- @config[key]
- end
-
- def inspect
- "#<#{self.class} #{__id__()}>"
- end
-
- def invoke
- run_metaconfigs
- case task = parsearg_global()
- when nil, 'all'
- parsearg_config
- init_installers
- exec_config
- exec_setup
- exec_install
- else
- case task
- when 'config', 'test'
- ;
- when 'clean', 'distclean'
- @config.load_savefile if File.exist?(@config.savefile)
- else
- @config.load_savefile
- end
- __send__ "parsearg_#{task}"
- init_installers
- __send__ "exec_#{task}"
- end
- end
-
- def run_metaconfigs
- @config.load_script "#{@ardir}/metaconfig"
- end
-
- def init_installers
- @installer = Installer.new(@config, @ardir, File.expand_path('.'))
- end
-
- #
- # Hook Script API bases
- #
-
- def srcdir_root
- @ardir
- end
-
- def objdir_root
- '.'
- end
-
- def relpath
- '.'
- end
-
- #
- # Option Parsing
- #
-
- def parsearg_global
- while arg = ARGV.shift
- case arg
- when /\A\w+\z/
- setup_rb_error "invalid task: #{arg}" unless valid_task?(arg)
- return arg
- when '-q', '--quiet'
- @config.verbose = false
- when '--verbose'
- @config.verbose = true
- when '--help'
- print_usage $stdout
- exit 0
- when '--version'
- puts "#{File.basename($0)} version #{Version}"
- exit 0
- when '--copyright'
- puts Copyright
- exit 0
- else
- setup_rb_error "unknown global option '#{arg}'"
- end
- end
- nil
- end
-
- def valid_task?(t)
- valid_task_re() =~ t
- end
-
- def valid_task_re
- @valid_task_re ||= /\A(?:#{TASKS.map {|task,desc| task }.join('|')})\z/
- end
-
- def parsearg_no_options
- unless ARGV.empty?
- task = caller(0).first.slice(%r<`parsearg_(\w+)'>, 1)
- setup_rb_error "#{task}: unknown options: #{ARGV.join(' ')}"
- end
- end
-
- alias parsearg_show parsearg_no_options
- alias parsearg_setup parsearg_no_options
- alias parsearg_test parsearg_no_options
- alias parsearg_clean parsearg_no_options
- alias parsearg_distclean parsearg_no_options
-
- def parsearg_config
- evalopt = []
- set = []
- @config.config_opt = []
- while i = ARGV.shift
- if /\A--?\z/ =~ i
- @config.config_opt = ARGV.dup
- break
- end
- name, value = *@config.parse_opt(i)
- if @config.value_config?(name)
- @config[name] = value
- else
- evalopt.push [name, value]
- end
- set.push name
- end
- evalopt.each do |name, value|
- @config.lookup(name).evaluate value, @config
- end
- # Check if configuration is valid
- set.each do |n|
- @config[n] if @config.value_config?(n)
- end
- end
-
- def parsearg_install
- @config.no_harm = false
- @config.install_prefix = ''
- while a = ARGV.shift
- case a
- when '--no-harm'
- @config.no_harm = true
- when /\A--prefix=/
- path = a.split(/=/, 2)[1]
- path = File.expand_path(path) unless path[0,1] == '/'
- @config.install_prefix = path
- else
- setup_rb_error "install: unknown option #{a}"
- end
- end
- end
-
- def print_usage(out)
- out.puts 'Typical Installation Procedure:'
- out.puts " $ ruby #{File.basename $0} config"
- out.puts " $ ruby #{File.basename $0} setup"
- out.puts " # ruby #{File.basename $0} install (may require root privilege)"
- out.puts
- out.puts 'Detailed Usage:'
- out.puts " ruby #{File.basename $0} <global option>"
- out.puts " ruby #{File.basename $0} [<global options>] <task> [<task options>]"
-
- fmt = " %-24s %s\n"
- out.puts
- out.puts 'Global options:'
- out.printf fmt, '-q,--quiet', 'suppress message outputs'
- out.printf fmt, ' --verbose', 'output messages verbosely'
- out.printf fmt, ' --help', 'print this message'
- out.printf fmt, ' --version', 'print version and quit'
- out.printf fmt, ' --copyright', 'print copyright and quit'
- out.puts
- out.puts 'Tasks:'
- TASKS.each do |name, desc|
- out.printf fmt, name, desc
- end
-
- fmt = " %-24s %s [%s]\n"
- out.puts
- out.puts 'Options for CONFIG or ALL:'
- @config.each do |item|
- out.printf fmt, item.help_opt, item.description, item.help_default
- end
- out.printf fmt, '--rbconfig=path', 'rbconfig.rb to load',"running ruby's"
- out.puts
- out.puts 'Options for INSTALL:'
- out.printf fmt, '--no-harm', 'only display what to do if given', 'off'
- out.printf fmt, '--prefix=path', 'install path prefix', ''
- out.puts
- end
-
- #
- # Task Handlers
- #
-
- def exec_config
- @installer.exec_config
- @config.save # must be final
- end
-
- def exec_setup
- @installer.exec_setup
- end
-
- def exec_install
- @installer.exec_install
- end
-
- def exec_test
- @installer.exec_test
- end
-
- def exec_show
- @config.each do |i|
- printf "%-20s %s\n", i.name, i.value if i.value?
- end
- end
-
- def exec_clean
- @installer.exec_clean
- end
-
- def exec_distclean
- @installer.exec_distclean
- end
-
-end # class ToplevelInstaller
-
-
-class ToplevelInstallerMulti < ToplevelInstaller
-
- include FileOperations
-
- def initialize(ardir_root, config)
- super
- @packages = directories_of("#{@ardir}/packages")
- raise 'no package exists' if @packages.empty?
- @root_installer = Installer.new(@config, @ardir, File.expand_path('.'))
- end
-
- def run_metaconfigs
- @config.load_script "#{@ardir}/metaconfig", self
- @packages.each do |name|
- @config.load_script "#{@ardir}/packages/#{name}/metaconfig"
- end
- end
-
- attr_reader :packages
-
- def packages=(list)
- raise 'package list is empty' if list.empty?
- list.each do |name|
- raise "directory packages/#{name} does not exist"\
- unless File.dir?("#{@ardir}/packages/#{name}")
- end
- @packages = list
- end
-
- def init_installers
- @installers = {}
- @packages.each do |pack|
- @installers[pack] = Installer.new(@config,
- "#{@ardir}/packages/#{pack}",
- "packages/#{pack}")
- end
- with = extract_selection(config('with'))
- without = extract_selection(config('without'))
- @selected = @installers.keys.select {|name|
- (with.empty? or with.include?(name)) \
- and not without.include?(name)
- }
- end
-
- def extract_selection(list)
- a = list.split(/,/)
- a.each do |name|
- setup_rb_error "no such package: #{name}" unless @installers.key?(name)
- end
- a
- end
-
- def print_usage(f)
- super
- f.puts 'Inluded packages:'
- f.puts ' ' + @packages.sort.join(' ')
- f.puts
- end
-
- #
- # Task Handlers
- #
-
- def exec_config
- run_hook 'pre-config'
- each_selected_installers {|inst| inst.exec_config }
- run_hook 'post-config'
- @config.save # must be final
- end
-
- def exec_setup
- run_hook 'pre-setup'
- each_selected_installers {|inst| inst.exec_setup }
- run_hook 'post-setup'
- end
-
- def exec_install
- run_hook 'pre-install'
- each_selected_installers {|inst| inst.exec_install }
- run_hook 'post-install'
- end
-
- def exec_test
- run_hook 'pre-test'
- each_selected_installers {|inst| inst.exec_test }
- run_hook 'post-test'
- end
-
- def exec_clean
- rm_f @config.savefile
- run_hook 'pre-clean'
- each_selected_installers {|inst| inst.exec_clean }
- run_hook 'post-clean'
- end
-
- def exec_distclean
- rm_f @config.savefile
- run_hook 'pre-distclean'
- each_selected_installers {|inst| inst.exec_distclean }
- run_hook 'post-distclean'
- end
-
- #
- # lib
- #
-
- def each_selected_installers
- Dir.mkdir 'packages' unless File.dir?('packages')
- @selected.each do |pack|
- $stderr.puts "Processing the package `#{pack}' ..." if verbose?
- Dir.mkdir "packages/#{pack}" unless File.dir?("packages/#{pack}")
- Dir.chdir "packages/#{pack}"
- yield @installers[pack]
- Dir.chdir '../..'
- end
- end
-
- def run_hook(id)
- @root_installer.run_hook id
- end
-
- # module FileOperations requires this
- def verbose?
- @config.verbose?
- end
-
- # module FileOperations requires this
- def no_harm?
- @config.no_harm?
- end
-
-end # class ToplevelInstallerMulti
-
-
-class Installer
-
- FILETYPES = %w( bin lib ext data conf man )
-
- include FileOperations
- include HookScriptAPI
-
- def initialize(config, srcroot, objroot)
- @config = config
- @srcdir = File.expand_path(srcroot)
- @objdir = File.expand_path(objroot)
- @currdir = '.'
- end
-
- def inspect
- "#<#{self.class} #{File.basename(@srcdir)}>"
- end
-
- def noop(rel)
- end
-
- #
- # Hook Script API base methods
- #
-
- def srcdir_root
- @srcdir
- end
-
- def objdir_root
- @objdir
- end
-
- def relpath
- @currdir
- end
-
- #
- # Config Access
- #
-
- # module FileOperations requires this
- def verbose?
- @config.verbose?
- end
-
- # module FileOperations requires this
- def no_harm?
- @config.no_harm?
- end
-
- def verbose_off
- begin
- save, @config.verbose = @config.verbose?, false
- yield
- ensure
- @config.verbose = save
- end
- end
-
- #
- # TASK config
- #
-
- def exec_config
- exec_task_traverse 'config'
- end
-
- alias config_dir_bin noop
- alias config_dir_lib noop
-
- def config_dir_ext(rel)
- extconf if extdir?(curr_srcdir())
- end
-
- alias config_dir_data noop
- alias config_dir_conf noop
- alias config_dir_man noop
-
- def extconf
- ruby "#{curr_srcdir()}/extconf.rb", *@config.config_opt
- end
-
- #
- # TASK setup
- #
-
- def exec_setup
- exec_task_traverse 'setup'
- end
-
- def setup_dir_bin(rel)
- files_of(curr_srcdir()).each do |fname|
- update_shebang_line "#{curr_srcdir()}/#{fname}"
- end
- end
-
- alias setup_dir_lib noop
-
- def setup_dir_ext(rel)
- make if extdir?(curr_srcdir())
- end
-
- alias setup_dir_data noop
- alias setup_dir_conf noop
- alias setup_dir_man noop
-
- def update_shebang_line(path)
- return if no_harm?
- return if config('shebang') == 'never'
- old = Shebang.load(path)
- if old
- $stderr.puts "warning: #{path}: Shebang line includes too many args. It is not portable and your program may not work." if old.args.size > 1
- new = new_shebang(old)
- return if new.to_s == old.to_s
- else
- return unless config('shebang') == 'all'
- new = Shebang.new(config('rubypath'))
- end
- $stderr.puts "updating shebang: #{File.basename(path)}" if verbose?
- open_atomic_writer(path) {|output|
- File.open(path, 'rb') {|f|
- f.gets if old # discard
- output.puts new.to_s
- output.print f.read
- }
- }
- end
-
- def new_shebang(old)
- if /\Aruby/ =~ File.basename(old.cmd)
- Shebang.new(config('rubypath'), old.args)
- elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby'
- Shebang.new(config('rubypath'), old.args[1..-1])
- else
- return old unless config('shebang') == 'all'
- Shebang.new(config('rubypath'))
- end
- end
-
- def open_atomic_writer(path, &block)
- tmpfile = File.basename(path) + '.tmp'
- begin
- File.open(tmpfile, 'wb', &block)
- File.rename tmpfile, File.basename(path)
- ensure
- File.unlink tmpfile if File.exist?(tmpfile)
- end
- end
-
- class Shebang
- def Shebang.load(path)
- line = nil
- File.open(path) {|f|
- line = f.gets
- }
- return nil unless /\A#!/ =~ line
- parse(line)
- end
-
- def Shebang.parse(line)
- cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ')
- new(cmd, args)
- end
-
- def initialize(cmd, args = [])
- @cmd = cmd
- @args = args
- end
-
- attr_reader :cmd
- attr_reader :args
-
- def to_s
- "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}")
- end
- end
-
- #
- # TASK install
- #
-
- def exec_install
- rm_f 'InstalledFiles'
- exec_task_traverse 'install'
- end
-
- def install_dir_bin(rel)
- install_files targetfiles(), "#{config('bindir')}/#{rel}", 0755, strip_ext?
- end
-
- def strip_ext?
- /mswin|mingw/ !~ RUBY_PLATFORM
- end
-
- def install_dir_lib(rel)
- install_files libfiles(), "#{config('rbdir')}/#{rel}", 0644
- end
-
- def install_dir_ext(rel)
- return unless extdir?(curr_srcdir())
- install_files rubyextentions('.'),
- "#{config('sodir')}/#{File.dirname(rel)}",
- 0555
- end
-
- def install_dir_data(rel)
- install_files targetfiles(), "#{config('datadir')}/#{rel}", 0644
- end
-
- def install_dir_conf(rel)
- # FIXME: should not remove current config files
- # (rename previous file to .old/.org)
- install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644
- end
-
- def install_dir_man(rel)
- install_files targetfiles(), "#{config('mandir')}/#{rel}", 0644
- end
-
- def install_files(list, dest, mode, stripext = false)
- mkdir_p dest, @config.install_prefix
- list.each do |fname|
- if stripext
- install fname, "#{dest}/#{File.basename(fname, '.*')}",
- mode, @config.install_prefix
- else
- install fname, dest, mode, @config.install_prefix
- end
- end
- end
-
- def libfiles
- glob_reject(%w(*.y *.output), targetfiles())
- end
-
- def rubyextentions(dir)
- ents = glob_select("*.#{@config.dllext}", targetfiles())
- if ents.empty?
- setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first"
- end
- ents
- end
-
- def targetfiles
- mapdir(existfiles() - hookfiles())
- end
-
- def mapdir(ents)
- ents.map {|ent|
- if File.exist?(ent)
- then ent # objdir
- else "#{curr_srcdir()}/#{ent}" # srcdir
- end
- }
- end
-
- # picked up many entries from cvs-1.11.1/src/ignore.c
- JUNK_FILES = %w(
- core RCSLOG tags TAGS .make.state
- .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb
- *~ *.old *.bak *.BAK *.orig *.rej _$* *$
-
- *.org *.in .*
- )
-
- def existfiles
- glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.')))
- end
-
- def hookfiles
- %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt|
- %w( config setup install clean distclean ).map {|t| sprintf(fmt, t) }
- }.flatten
- end
-
- def glob_select(pat, ents)
- re = globs2re([pat])
- ents.select {|ent| re =~ ent }
- end
-
- def glob_reject(pats, ents)
- re = globs2re(pats)
- ents.reject {|ent| re =~ ent }
- end
-
- GLOB2REGEX = {
- '.' => '\.',
- '$' => '\$',
- '#' => '\#',
- '*' => '.*'
- }
-
- def globs2re(pats)
- /\A(?:#{
- pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|')
- })\z/
- end
-
- #
- # TASK test
- #
-
- TESTDIR = 'test'
-
- def exec_test
- unless File.directory?('test')
- $stderr.puts 'no test in this package' if verbose?
- return
- end
- $stderr.puts 'Running tests...' if verbose?
- begin
- require 'test/unit'
- rescue LoadError
- setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.'
- end
- runner = Test::Unit::AutoRunner.new(true)
- runner.to_run << TESTDIR
- runner.run
- end
-
- #
- # TASK clean
- #
-
- def exec_clean
- exec_task_traverse 'clean'
- rm_f @config.savefile
- rm_f 'InstalledFiles'
- end
-
- alias clean_dir_bin noop
- alias clean_dir_lib noop
- alias clean_dir_data noop
- alias clean_dir_conf noop
- alias clean_dir_man noop
-
- def clean_dir_ext(rel)
- return unless extdir?(curr_srcdir())
- make 'clean' if File.file?('Makefile')
- end
-
- #
- # TASK distclean
- #
-
- def exec_distclean
- exec_task_traverse 'distclean'
- rm_f @config.savefile
- rm_f 'InstalledFiles'
- end
-
- alias distclean_dir_bin noop
- alias distclean_dir_lib noop
-
- def distclean_dir_ext(rel)
- return unless extdir?(curr_srcdir())
- make 'distclean' if File.file?('Makefile')
- end
-
- alias distclean_dir_data noop
- alias distclean_dir_conf noop
- alias distclean_dir_man noop
-
- #
- # Traversing
- #
-
- def exec_task_traverse(task)
- run_hook "pre-#{task}"
- FILETYPES.each do |type|
- if type == 'ext' and config('without-ext') == 'yes'
- $stderr.puts 'skipping ext/* by user option' if verbose?
- next
- end
- traverse task, type, "#{task}_dir_#{type}"
- end
- run_hook "post-#{task}"
- end
-
- def traverse(task, rel, mid)
- dive_into(rel) {
- run_hook "pre-#{task}"
- __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '')
- directories_of(curr_srcdir()).each do |d|
- traverse task, "#{rel}/#{d}", mid
- end
- run_hook "post-#{task}"
- }
- end
-
- def dive_into(rel)
- return unless File.dir?("#{@srcdir}/#{rel}")
-
- dir = File.basename(rel)
- Dir.mkdir dir unless File.dir?(dir)
- prevdir = Dir.pwd
- Dir.chdir dir
- $stderr.puts '---> ' + rel if verbose?
- @currdir = rel
- yield
- Dir.chdir prevdir
- $stderr.puts '<--- ' + rel if verbose?
- @currdir = File.dirname(rel)
- end
-
- def run_hook(id)
- path = [ "#{curr_srcdir()}/#{id}",
- "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) }
- return unless path
- $stderr.puts "invoking hook script #{path}" if verbose?
- begin
- instance_eval File.read(path), path, 1
- rescue
- raise if $DEBUG
- setup_rb_error "hook #{path} failed:\n" + $!.message
- end
- end
-
-end # class Installer
-
-
-class SetupError < StandardError; end
-
-def setup_rb_error(msg)
- raise SetupError, msg
-end
-
-if $0 == __FILE__
- begin
- ToplevelInstaller.invoke
- rescue SetupError
- raise if $DEBUG
- $stderr.puts $!.message
- $stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
- exit 1
- end
-end
diff --git a/skeletons/sh.erb b/skeletons/sh.erb
deleted file mode 100644
index e2c953e..0000000
--- a/skeletons/sh.erb
+++ /dev/null
@@ -1,32 +0,0 @@
-<%= header 'sh.hdr' %>
-
-SELF=`basename $0`
-VERSION='0.0.1'
-
-function usage ( ) {
- echo "usage : $SELF [-]"
-}
-
-function version ( ) {
- echo " $SELF version $VERSION"
- echo " Copyright (C) <%= @username %> <%= "#{Time.now.year}-#{Time.now.year+3}" %>"
- echo " This is free software; There is NO warranty; "
- echo " not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-}
-
-OPTERR=1
-while [ 1 ]; do
- getopts "vha:" OPT
- if test $? -gt 0; then break; fi
- case $OPT in
- v)
- version && exit 0
- ;;
- h)
- usage && exit 0
- ;;
- a)
- echo "arg $OPTARG [$OPTIND]"
- ;;
- esac
-done
diff --git a/skeletons/sh.hdr b/skeletons/sh.hdr
deleted file mode 100644
index ca0ad8a..0000000
--- a/skeletons/sh.hdr
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/bash
-
-#----------------------------------------------------------------------------
-#
-# File : <%= @filename %>
-# Author : <%= @username %> <<%= @email %>>
-# Date : <%= @now %>
-# License :
-#
-<%= license '# '%>
-#
-#----------------------------------------------------------------------------
diff --git a/skeletons/tex.erb b/skeletons/tex.erb
deleted file mode 100644
index 489f73c..0000000
--- a/skeletons/tex.erb
+++ /dev/null
@@ -1,74 +0,0 @@
-%
-% <%= @username %> <<%= @email %>>
-% <%= @filename %>
-% <%= @now %>
-%
-\documentclass[a4paper,twoside,12pt]{article}
-%
-\usepackage[french]{babel} % prise en charge du francais
-\usepackage[latin1]{inputenc} % codage des caracteres
-\usepackage[T1]{fontenc} % manipulation des polices
-\usepackage{moreverb} % listinginput[incr]{first}{file}
-\usepackage{fancybox} % VerbatimInput{file}
-\usepackage{fancyhdr} % en-tete pied de page
-\usepackage{hyperref} % lien hypertext pdf / html doit etre place en dernier
-\usepackage{layout} % afficher le layout
-% layout vertical
-\setlength{\topmargin}{0cm}
-\setlength{\headheight}{2cm}
-\setlength{\headsep}{0.5cm}
-\setlength{\topskip}{1.5cm}
-\setlength{\textheight}{21cm}
-\setlength{\footskip}{2cm}
-%layout horizontal
-\setlength{\evensidemargin}{49pt}
-\setlength{\oddsidemargin}{6pt}
-\setlength{\marginparwidth}{3cm}
-\setlength{\textwidth}{14cm}
-%
-\pagestyle{fancy}
-%
-%
-\begin{document}
- %\layout
- \tableofcontents
- \newpage
- %
- %
- \section{Section}
- %
- Text ...
- %
- \paragraph{Paragraph} P
- %
- \paragraph{} LABEL\label{L}
- %
- \subsection{Subsection}
- %
- %
- \subsubsection{SubSubSection}
- %
- %
- %
- %
- %
- \newpage
- \section{Section 2}
- %
- Label : \ref{L} page : \pageref{L}.\\
- \url{http://cr.yp.to}\\
- biblio : \cite{keyword}\\
- \footnote{une note de bas de page}
- %
- \appendix
- \section{Code Source}
- \subsection{Code\_A}
- %
- %\insertFile{../Code_A}{scriptsize}
- %
- %\includegraphics*[height=8cm]{filename}
- %\section{Bibliographie}
- %
- \bibliographystyle{plain}
- \bibliography{biblio}
-\end{document}
diff --git a/skeletons/wxApp.py.erb b/skeletons/wxApp.py.erb
deleted file mode 100644
index 18f9392..0000000
--- a/skeletons/wxApp.py.erb
+++ /dev/null
@@ -1,126 +0,0 @@
-<%= header 'python.hdr' %>
-
-""" Module Descritpion """
-
-import wx
-from zurcher.wx.MenuFactory import *
-from wx.html import HtmlWindow
-import wx.lib.wxpTag # wxButton in AboutDialog
-from wx.lib.newevent import NewEvent as wxNewEvent
-
-
-#----------------------------------------------------------------------------
-
-__app_version__ = '0.1.0'
-__app_name__ = 'MyApp'
-__app__ = '%s %s' % ( __app_name__, __app_version__ )
-
-#----------------------------------------------------------------------------
-
-UpdateGuiEvent, EVT_UPDATE_GUI = wxNewEvent( )
-
-#----------------------------------------------------------------------------
-
-class AboutDialog( wx.Dialog ):
- """ Used to show info about ZIP file """
- text = '''<html>
- <body bgcolor="#dddddd">
- <center><table bgcolor="#eeeeee" width="100%%" cellspacing="0" cellpadding="0" border="1">
- <tr><td align="center">Running on Python %s<br>using wxPython %s</td></tr></table>
- <p><b>%s</b> is a small test application.</p>
- <p><b>%s</b> is brought to you by <b>J&eacute;r&eacute;my Zurcher</b></p>
- <p><font size="-1">Please see <i>license.txt</i> for licensing information about <b>wxPython.</b></font></p>
- <p><wxp module="wx" class="Button">
- <param name="label" value="Okay">
- <param name="id" value="%d">
- </wxp></p>
- </center>
- </body>
- </html>'''
-
- def __init__( self, parent, title, ID=-1 ):
- wx.Dialog.__init__( self, parent, ID, title)
- html = HtmlWindow( self, -1, size=(410, -1) )
- import sys
- py_version = sys.version.split( )[0]
- html.SetPage( self.text % ( py_version, wx.__version__, __app_name__, __app_name__, wx.ID_OK ) )
- btn = html.FindWindowById( wx.ID_OK )
- btn.SetDefault( )
- ir = html.GetInternalRepresentation( )
- html.SetSize( ( ir.GetWidth()+25, ir.GetHeight()+25 ) )
- self.SetClientSize( html.GetSize() )
- self.CenterOnScreen( )
-
-#----------------------------------------------------------------------------
-class MyPanel( wx.Panel ):
- def __init__( self, parent ):
- wx.Panel.__init__( self, parent, -1 )
- self.SetBackgroundColour( 'GREY' )
- gbs = wx.GridBagSizer( 5, 5 )
- gbs.Add( (0,0), (10,10) )
- gbs.Add( wx.StaticText( self, -1, 'wx.StaticText' ), (1,1) )
- self.SetSizer( gbs )
-
-#----------------------------------------------------------------------------
-class MyFrame( wx.Frame ):
- def __init__( self, title ):
- wx.Frame.__init__( self, None, -1, title, size=(200, 200) )
-
- menuIDs = {
- 'open' : [ wx.NewId(), True ],
- }
- self.menuIDs = menuIDs
-
- mb = zMenuBar( self, None, wx.MB_DOCKABLE )
- fileMenu=[
- zItem( '&Open\tCtrl-O', 'Open something', fct=self.OnOpen, id=menuIDs['open'][0] ),
- zItem( kind=wx.ITEM_SEPARATOR ),
- zItem( 'E&xit\tCtrl-X', 'Quit this application', fct=self.OnExit )
- ]
- helpMenu=[
- zItem( '&About\tF1', 'About dialog', fct=self.OnHelp )
- ]
- menus=[
- zMenu( '&File', '', fileMenu, wx.MENU_TEAROFF),
- zMenu( '&Help','', helpMenu)
- ]
- mb.realize( menus )
-
- self.SetStatusBar( self.CreateStatusBar( ) )
-
- self.Bind( wx.EVT_CLOSE, self.OnExit )
- panel = MyPanel( self )
- #self.Fit( )
-
- def OnExit( self, event ):
- self.Destroy( )
-
- def OnHelp( self, event ):
- dialog = AboutDialog( self, 'About %s ' % ( __app__ ) )
- dialog.ShowModal( )
- dialog.Destroy( )
-
- def OnOpen( self, event ):
- print 'OnOpen will be disabled'
- self.menuIDs['open'][1] = False
- self.OnUpdateGui( event )
-
- def OnUpdateGui( self, evt ):
-# for key in self.menuIDs.keys( ):
-# self.menuIDs[key][1] = False
- mb = self.GetMenuBar( )
- map( lambda x:mb.Enable( x[0], x[1] ), self.menuIDs.values() )
-
-#----------------------------------------------------------------------------
-class MyApp( wx.App ):
- def OnInit( self ):
- frame = MyFrame( __app__ )
- frame.Center( )
- frame.Show( True )
- return True
-
-#----------------------------------------------------------------------------
-if __name__ == '__main__':
- app = MyApp(0)
- app.MainLoop()
-