diff options
author | lego <lego@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-03-12 17:39:46 +0000 |
---|---|---|
committer | lego <lego@f5534014-38df-0310-8fa8-9805f1628bb7> | 2006-03-12 17:39:46 +0000 |
commit | 9d7b4646a0938baa1d5e23d38cdca3603c2685c6 (patch) | |
tree | 6fcb4946ef6aaf9f631f73c02f3f0239f3382b85 /plugins | |
parent | aa1286d313ca1819c9092c8ebe8fbc442ca84ef9 (diff) |
Move make-init-lua.pl and family to plugins/lua and have init.lua installed in the right place
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@17602 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/lua/Makefile.am | 10 | ||||
-rw-r--r-- | plugins/lua/make-init-lua.pl | 119 | ||||
-rw-r--r-- | plugins/lua/template-init.lua | 61 |
3 files changed, 189 insertions, 1 deletions
diff --git a/plugins/lua/Makefile.am b/plugins/lua/Makefile.am index 1069565b1d..35dbff8737 100644 --- a/plugins/lua/Makefile.am +++ b/plugins/lua/Makefile.am @@ -46,6 +46,8 @@ lua_la_SOURCES = \ lua_la_LDFLAGS = -module -avoid-version lua_la_LIBADD = @PLUGIN_LIBS@ @LUA_LIBS@ +pkgdata_DATA = init.lua + # Libs must be cleared, or else libtool won't create a shared module. # If your module needs to be linked against any particular libraries, # add them here. @@ -60,11 +62,14 @@ DISTCLEANFILES = \ MAINTAINERCLEANFILES = \ doc/*.pod \ Makefile.in \ - elua_register.h + elua_register.h \ + init.lua EXTRA_DIST = \ elua_register.h \ elua_makereg.pl \ + template-init.lua \ + make-init-lua.pl \ Makefile.nmake elua.h: elua_register.h @@ -79,3 +84,6 @@ doc: $(lua_modules) dummy: touch dummy + +init.lua: template-init.lua make-init-lua.pl ../../epan/ftypes/ftypes.h ../../wiretap/wtap.h ../../epan/proto.h + $(PERL) make-init-lua.pl template-init.lua > init.lua diff --git a/plugins/lua/make-init-lua.pl b/plugins/lua/make-init-lua.pl new file mode 100644 index 0000000000..35ef3c507d --- /dev/null +++ b/plugins/lua/make-init-lua.pl @@ -0,0 +1,119 @@ +#!/usr/bin/perl +# create the init.lua file based on a template (stdin) +# +# $Id$ +# +# Ethereal - Network traffic analyzer +# By Gerald Combs <gerald@ethereal.com> +# Copyright 2004 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +use strict; + +my $wtap_encaps_table = ''; +my $ft_types_table = ''; +my $bases_table = ''; +my $expert_pi = ''; + +my %replacements = %{{ + WTAP_ENCAPS => \$wtap_encaps_table, + FT_TYPES => \$ft_types_table, + BASES => \$bases_table, + EXPERT => \$expert_pi, +}}; + + +# +# load template +# +my $template = ''; +$template .= $_ while(<>); + + +# +# make wiretap encapusulation table +# + +$wtap_encaps_table = "-- Wiretap encapsulations\nwtap = {\n"; + +open WTAP_H, "< ../../wiretap/wtap.h"; + +while(<WTAP_H>) { + if ( /^#define WTAP_ENCAP_([A-Z0-9_]+)\s+(\d+)/ ) { + $wtap_encaps_table .= "\t[\"$1\"] = $2,\n"; + } +} + +$wtap_encaps_table =~ s/,\n$/\n}\n/msi; + +# +# enum fttype +# + +$ft_types_table = " -- Field Types\nftypes = {\n"; + +my $ftype_num = 0; + +open FTYPES_H, "< ../../epan/ftypes/ftypes.h"; +while(<FTYPES_H>) { + if ( /^\s+FT_([A-Z0-9a-z_]+)\s*,/ ) { + $ft_types_table .= "\t[\"$1\"] = $ftype_num,\n"; + $ftype_num++; + } +} +close FTYPES_H; + +$ft_types_table =~ s/,\n$/\n}\n/msi; + + + +# +# enum base +# + +$bases_table = "-- Display Bases\n base = {\n"; +$expert_pi = "-- Expert flags and facilities\n"; + +my $base_num = 0; + +open PROTO_H, "< ../../epan/proto.h"; +while(<PROTO_H>) { + if (/^\s+BASE_([A-Z_]+),/ ) { + $bases_table .= "\t[\"$1\"] = $base_num,\n"; + $base_num++; + } + + if ( /^.define\s+(PI_[A-Z_]+)\s+((0x)?[0-9A-Fa-f]+)/ ) { + my ($name, $value) = ($1, hex($2)); + $expert_pi .= "$name = $value\n"; + } +} +close PROTO_H; + +$bases_table .= "}\n\n"; +$expert_pi .= "\n\n"; + + +# +# replace macros +# + +for my $key (keys %replacements) { + $template =~ s/%$key%/${$replacements{$key}}/msig; +} + + +print $template; diff --git a/plugins/lua/template-init.lua b/plugins/lua/template-init.lua new file mode 100644 index 0000000000..3bd105dade --- /dev/null +++ b/plugins/lua/template-init.lua @@ -0,0 +1,61 @@ +-- init.lua +-- +-- initilaize ethereal's lua +-- +-- This file is going to be executed before any other lua script. +-- It can be used to load libraries, disable functions and more. +-- +-- $Id$ +-- +-- Ethereal - Network traffic analyzer +-- By Gerald Combs <gerald@ethereal.com> +-- Copyright 1998 Gerald Combs +-- +-- This program is free software; you can redistribute it and/or +-- modify it under the terms of the GNU General Public License +-- as published by the Free Software Foundation; either version 2 +-- of the License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +-- If lua is to be disabled even if it was installed uncomment the following +-- line. +-- disable_lua = true; do return end; + + +-- If set and we are running with special privileges this setting +-- tells whether scripts other than this one are to be run. +run_user_scripts_when_superuser = false + +-- disable potentialy harmful lua functions when running superuser +if running_superuser then + dofile = function() error("dofile has been disabled") end + loadfile = function() error("loadfile has been disabled") end + loadlib = function() error("loadlib has been disabled") end + require = function() error("require has been disabled") end + os = {} + io = {} + file = {} +end + +-- to avoid output to stdout which can caause problems lua's print () +-- has been suppresed so that it yields an error. +-- have print() call info() instead. +print = info + +-- %WTAP_ENCAPS% + +-- %FT_TYPES% + +-- %BASES% + +-- %EXPERT% + |