Initial checkin of Webmin API perl module
authorJamie Cameron <jcameron@webmin.com>
Mon, 10 Dec 2007 20:00:35 +0000 (20:00 +0000)
committerJamie Cameron <jcameron@webmin.com>
Mon, 10 Dec 2007 20:00:35 +0000 (20:00 +0000)
Webmin-API-1.0/API.pm [new file with mode: 0644]
Webmin-API-1.0/Changes [new file with mode: 0644]
Webmin-API-1.0/MANIFEST [new file with mode: 0644]
Webmin-API-1.0/Makefile [new file with mode: 0644]
Webmin-API-1.0/Makefile.PL [new file with mode: 0644]
Webmin-API-1.0/pm_to_blib [new file with mode: 0644]
Webmin-API-1.0/test.pl [new file with mode: 0644]

diff --git a/Webmin-API-1.0/API.pm b/Webmin-API-1.0/API.pm
new file mode 100644 (file)
index 0000000..9f3ae13
--- /dev/null
@@ -0,0 +1,127 @@
+package Webmin::API;
+
+require 5.005_62;
+
+require Exporter;
+
+our @ISA = qw(Exporter);
+
+# Items to export into callers namespace by default. Note: do not export
+# names by default without a very good reason. Use EXPORT_OK instead.
+# Do not simply export all your public functions/methods/constants.
+
+our @EXPORT = (
+       '$config_directory',
+       '$var_directory',
+       '$remote_error_handler',
+       '%month_to_number_map',
+       '%number_to_month_map',
+       '$config_file',
+       '%gconfig',
+       '$null_file',
+       '$path_separator',
+       '$root_directory',
+       '$module_name',
+       '@root_directories',
+       '$base_remote_user',
+       '$remote_user',
+       '$module_config_directory',
+       '$module_config_file',
+       '%config',
+       '$current_theme',
+       '$theme_root_directory',
+       '%tconfig',
+       '$tb',
+       '$cb',
+       '$scriptname',
+       '$webmin_logfile',
+       '$current_lang',
+       '$current_lang_info',
+       '@lang_order_list',
+       '%text',
+       '%module_info',
+       '$module_root_directory',
+       '$default_lang',
+       );
+
+our $VERSION = '1.0';
+
+# Find old symbols by Webmin import
+my %oldsyms = %Webmin::API::;
+
+# Preloaded methods go here.
+$main::no_acl_check++;
+$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
+$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
+open(MINISERV, $ENV{'WEBMIN_CONFIG'}."/miniserv.conf") ||
+       die "Could not open Webmin config file ".
+           $ENV{'WEBMIN_CONFIG'}."/miniserv.conf : $!";
+my $webmin_root;
+while(<MINISERV>) {
+       s/\r|\n//g;
+       if (/^root=(.*)/) {
+               $webmin_root = $1;
+               }
+       }
+close(MINISERV);
+$webmin_root || die "Could not find Webmin root directory";
+chdir($webmin_root);
+if ($0 =~ /\/([^\/]+)$/) {
+       $0 = $webmin_root."/".$1;
+       }
+else {
+       $0 = $webmin_root."/api.pl";    # Fake name
+       }
+require './web-lib.pl';
+&init_config();
+
+# Export core symbols
+foreach my $lib ("$webmin_root/web-lib.pl",
+                "$webmin_root/web-lib-funcs.pl") {
+       open(WEBLIB, $lib);
+       while(<WEBLIB>) {
+               if (/^sub\s+([a-z0-9\_]+)/i) {
+                       push(@EXPORT, $1);
+                       }
+               }
+       close(WEBLIB);
+       }
+our @EXPORT_OK = ( @EXPORT );
+
+1;
+__END__
+
+=head1 NAME
+
+Webmin::API - Perl module to make calling of Webmin functions from regular
+              command-line Perl scripts easier.
+
+=head1 SYNOPSIS
+
+  use Webmin::API;
+  @pids = &find_byname("httpd");
+  foreign_require("cron", "cron-lib.pl");
+  @jobs = &cron::list_cron_jobs();
+
+=head1 DESCRIPTION
+
+This module just provides a convenient way to call Webmin API functions
+from a script that is not run as a Webmin CGI, without having to include a 
+bunch of boilerplate initialization code at the top. It's main job is to export
+all API functions into the namespace of the caller, and to setup the Webmin
+environment.
+
+=head2 EXPORT
+
+All core Webmin API functions, like find_byname, foreign_config and so on.
+
+=head1 AUTHOR
+
+Jamie Cameron, jcameron@webmin.com
+
+=head1 SEE ALSO
+
+perl(1).
+
+=cut
+
diff --git a/Webmin-API-1.0/Changes b/Webmin-API-1.0/Changes
new file mode 100644 (file)
index 0000000..1473e44
--- /dev/null
@@ -0,0 +1,6 @@
+Revision history for Perl extension Webmin::API.
+
+0.01  Mon Dec 10 11:09:17 2007
+       - original version; created by h2xs 1.20 with options
+               -AXc -n Webmin::API
+
diff --git a/Webmin-API-1.0/MANIFEST b/Webmin-API-1.0/MANIFEST
new file mode 100644 (file)
index 0000000..ea87eef
--- /dev/null
@@ -0,0 +1,5 @@
+API.pm
+Changes
+MANIFEST
+Makefile.PL
+test.pl
diff --git a/Webmin-API-1.0/Makefile b/Webmin-API-1.0/Makefile
new file mode 100644 (file)
index 0000000..0b478ea
--- /dev/null
@@ -0,0 +1,669 @@
+# This Makefile is for the Webmin::API extension to perl.
+#
+# It was generated automatically by MakeMaker version
+# 5.45 (Revision: 1.222) from the contents of
+# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
+#
+#      ANY CHANGES MADE HERE WILL BE LOST!
+#
+#   MakeMaker ARGV: ()
+#
+#   MakeMaker Parameters:
+
+#      NAME => q[Webmin::API]
+#      PREREQ_PM => {  }
+#      VERSION_FROM => q[API.pm]
+
+# --- MakeMaker post_initialize section:
+
+
+# --- MakeMaker const_config section:
+
+# These definitions are from config.sh (via /usr/lib/perl5/5.6.0/i386-linux/Config.pm)
+
+# They may have been overridden via Makefile.PL or on the command line
+AR = ar
+CC = gcc
+CCCDLFLAGS = -fpic
+CCDLFLAGS = -rdynamic
+DLEXT = so
+DLSRC = dl_dlopen.xs
+LD = gcc
+LDDLFLAGS = -shared
+LDFLAGS = 
+LIBC = /lib/libc-2.2.1.so
+LIB_EXT = .a
+OBJ_EXT = .o
+OSNAME = linux
+OSVERS = 2.2.14
+RANLIB = :
+SO = so
+EXE_EXT = 
+FULL_AR = /usr/bin/ar
+
+
+# --- MakeMaker constants section:
+AR_STATIC_ARGS = cr
+NAME = Webmin::API
+DISTNAME = Webmin-API
+NAME_SYM = Webmin_API
+VERSION = 1.0
+VERSION_SYM = 1_0
+XS_VERSION = 1.0
+INST_BIN = blib/bin
+INST_EXE = blib/script
+INST_LIB = blib/lib
+INST_ARCHLIB = blib/arch
+INST_SCRIPT = blib/script
+PREFIX = /usr
+INSTALLDIRS = site
+INSTALLPRIVLIB = $(PREFIX)/lib/perl5/5.6.0
+INSTALLARCHLIB = $(PREFIX)/lib/perl5/5.6.0/i386-linux
+INSTALLSITELIB = $(PREFIX)/lib/perl5/site-perl
+INSTALLSITEARCH = $(PREFIX)/lib/perl5/site-perl/i386-linux
+INSTALLBIN = $(PREFIX)/bin
+INSTALLSCRIPT = $(PREFIX)/bin
+PERL_LIB = /usr/lib/perl5/5.6.0
+PERL_ARCHLIB = /usr/lib/perl5/5.6.0/i386-linux
+SITELIBEXP = /usr/lib/perl5/site-perl
+SITEARCHEXP = /usr/lib/perl5/site-perl/i386-linux
+LIBPERL_A = libperl.a
+FIRST_MAKEFILE = Makefile
+MAKE_APERL_FILE = Makefile.aperl
+PERLMAINCC = $(CC)
+PERL_INC = /usr/lib/perl5/5.6.0/i386-linux/CORE
+PERL = /usr/local/bin/perl
+FULLPERL = /usr/local/bin/perl
+FULL_AR = /usr/bin/ar
+
+VERSION_MACRO = VERSION
+DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
+XS_VERSION_MACRO = XS_VERSION
+XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
+PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
+
+MAKEMAKER = /usr/lib/perl5/5.6.0/ExtUtils/MakeMaker.pm
+MM_VERSION = 5.45
+
+# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
+# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
+# ROOTEXT = Directory part of FULLEXT with leading slash (eg /DBD)  !!! Deprecated from MM 5.32  !!!
+# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
+# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
+FULLEXT = Webmin/API
+BASEEXT = API
+PARENT_NAME = Webmin
+DLBASE = $(BASEEXT)
+VERSION_FROM = API.pm
+OBJECT = 
+LDFROM = $(OBJECT)
+LINKTYPE = dynamic
+
+# Handy lists of source code files:
+XS_FILES= 
+C_FILES = 
+O_FILES = 
+H_FILES = 
+HTMLLIBPODS    = 
+HTMLSCRIPTPODS = 
+MAN1PODS = 
+MAN3PODS = API.pm
+HTMLEXT = html
+INST_MAN1DIR = blib/man1
+INSTALLMAN1DIR = /usr/share/man/en/man1
+MAN1EXT = 1
+INST_MAN3DIR = blib/man3
+INSTALLMAN3DIR = /usr/share/perl5/man/man3
+MAN3EXT = 3
+PERM_RW = 644
+PERM_RWX = 755
+
+# work around a famous dec-osf make(1) feature(?):
+makemakerdflt: all
+
+.SUFFIXES: .xs .c .C .cpp .cxx .cc $(OBJ_EXT)
+
+# Nick wanted to get rid of .PRECIOUS. I don't remember why. I seem to recall, that
+# some make implementations will delete the Makefile when we rebuild it. Because
+# we call false(1) when we rebuild it. So make(1) is not completely wrong when it
+# does so. Our milage may vary.
+# .PRECIOUS: Makefile    # seems to be not necessary anymore
+
+.PHONY: all config static dynamic test linkext manifest
+
+# Where is the Config information that we are using/depend on
+CONFIGDEP = $(PERL_ARCHLIB)/Config.pm $(PERL_INC)/config.h
+
+# Where to put things:
+INST_LIBDIR      = $(INST_LIB)/Webmin
+INST_ARCHLIBDIR  = $(INST_ARCHLIB)/Webmin
+
+INST_AUTODIR     = $(INST_LIB)/auto/$(FULLEXT)
+INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
+
+INST_STATIC  =
+INST_DYNAMIC =
+INST_BOOT    =
+
+EXPORT_LIST = 
+
+PERL_ARCHIVE = 
+
+TO_INST_PM = API.pm
+
+PM_TO_BLIB = API.pm \
+       $(INST_LIBDIR)/API.pm
+
+
+# --- MakeMaker tool_autosplit section:
+
+# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
+AUTOSPLITFILE = $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -e 'use AutoSplit;autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1) ;'
+
+
+# --- MakeMaker tool_xsubpp section:
+
+
+# --- MakeMaker tools_other section:
+
+SHELL = /bin/sh
+CHMOD = chmod
+CP = cp
+LD = gcc
+MV = mv
+NOOP = $(SHELL) -c true
+RM_F = rm -f
+RM_RF = rm -rf
+TEST_F = test -f
+TOUCH = touch
+UMASK_NULL = umask 0
+DEV_NULL = > /dev/null 2>&1
+
+# The following is a portable way to say mkdir -p
+# To see which directories are created, change the if 0 to if 1
+MKPATH = $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Command -e mkpath
+
+# This helps us to minimize the effect of the .exists files A yet
+# better solution would be to have a stable file in the perl
+# distribution with a timestamp of zero. But this solution doesn't
+# need any changes to the core distribution and works with older perls
+EQUALIZE_TIMESTAMP = $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Command -e eqtime
+
+# Here we warn users that an old packlist file was found somewhere,
+# and that they should call some uninstall routine
+WARN_IF_OLD_PACKLIST = $(PERL) -we 'exit unless -f $$ARGV[0];' \
+-e 'print "WARNING: I have found an old package in\n";' \
+-e 'print "\t$$ARGV[0].\n";' \
+-e 'print "Please make sure the two installations are not conflicting\n";'
+
+UNINST=0
+VERBINST=1
+
+MOD_INSTALL = $(PERL) -I$(INST_LIB) -I$(PERL_LIB) -MExtUtils::Install \
+-e "install({@ARGV},'$(VERBINST)',0,'$(UNINST)');"
+
+DOC_INSTALL = $(PERL) -e '$$\="\n\n";' \
+-e 'print "=head2 ", scalar(localtime), ": C<", shift, ">", " L<", shift, ">";' \
+-e 'print "=over 4";' \
+-e 'while (defined($$key = shift) and defined($$val = shift)){print "=item *";print "C<$$key: $$val>";}' \
+-e 'print "=back";'
+
+UNINSTALL =   $(PERL) -MExtUtils::Install \
+-e 'uninstall($$ARGV[0],1,1); print "\nUninstall is deprecated. Please check the";' \
+-e 'print " packlist above carefully.\n  There may be errors. Remove the";' \
+-e 'print " appropriate files manually.\n  Sorry for the inconveniences.\n"'
+
+
+# --- MakeMaker dist section:
+
+DISTVNAME = $(DISTNAME)-$(VERSION)
+TAR  = tar
+TARFLAGS = cvf
+ZIP  = zip
+ZIPFLAGS = -r
+COMPRESS = gzip --best
+SUFFIX = .gz
+SHAR = shar
+PREOP = @$(NOOP)
+POSTOP = @$(NOOP)
+TO_UNIX = @$(NOOP)
+CI = ci -u
+RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
+DIST_CP = best
+DIST_DEFAULT = tardist
+
+
+# --- MakeMaker macro section:
+
+
+# --- MakeMaker depend section:
+
+
+# --- MakeMaker cflags section:
+
+
+# --- MakeMaker const_loadlibs section:
+
+
+# --- MakeMaker const_cccmd section:
+
+
+# --- MakeMaker post_constants section:
+
+
+# --- MakeMaker pasthru section:
+
+PASTHRU = LIB="$(LIB)"\
+       LIBPERL_A="$(LIBPERL_A)"\
+       LINKTYPE="$(LINKTYPE)"\
+       PREFIX="$(PREFIX)"\
+       OPTIMIZE="$(OPTIMIZE)"
+
+
+# --- MakeMaker c_o section:
+
+
+# --- MakeMaker xs_c section:
+
+
+# --- MakeMaker xs_o section:
+
+
+# --- MakeMaker top_targets section:
+
+#all ::        config $(INST_PM) subdirs linkext manifypods
+
+all :: pure_all htmlifypods manifypods
+       @$(NOOP)
+
+pure_all :: config pm_to_blib subdirs linkext
+       @$(NOOP)
+
+subdirs :: $(MYEXTLIB)
+       @$(NOOP)
+
+config :: Makefile $(INST_LIBDIR)/.exists
+       @$(NOOP)
+
+config :: $(INST_ARCHAUTODIR)/.exists
+       @$(NOOP)
+
+config :: $(INST_AUTODIR)/.exists
+       @$(NOOP)
+
+$(INST_AUTODIR)/.exists :: /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h
+       @$(MKPATH) $(INST_AUTODIR)
+       @$(EQUALIZE_TIMESTAMP) /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h $(INST_AUTODIR)/.exists
+
+       -@$(CHMOD) $(PERM_RWX) $(INST_AUTODIR)
+
+$(INST_LIBDIR)/.exists :: /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h
+       @$(MKPATH) $(INST_LIBDIR)
+       @$(EQUALIZE_TIMESTAMP) /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h $(INST_LIBDIR)/.exists
+
+       -@$(CHMOD) $(PERM_RWX) $(INST_LIBDIR)
+
+$(INST_ARCHAUTODIR)/.exists :: /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h
+       @$(MKPATH) $(INST_ARCHAUTODIR)
+       @$(EQUALIZE_TIMESTAMP) /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h $(INST_ARCHAUTODIR)/.exists
+
+       -@$(CHMOD) $(PERM_RWX) $(INST_ARCHAUTODIR)
+
+config :: $(INST_MAN3DIR)/.exists
+       @$(NOOP)
+
+
+$(INST_MAN3DIR)/.exists :: /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h
+       @$(MKPATH) $(INST_MAN3DIR)
+       @$(EQUALIZE_TIMESTAMP) /usr/lib/perl5/5.6.0/i386-linux/CORE/perl.h $(INST_MAN3DIR)/.exists
+
+       -@$(CHMOD) $(PERM_RWX) $(INST_MAN3DIR)
+
+help:
+       perldoc ExtUtils::MakeMaker
+
+Version_check:
+       @$(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) \
+               -MExtUtils::MakeMaker=Version_check \
+               -e "Version_check('$(MM_VERSION)')"
+
+
+# --- MakeMaker linkext section:
+
+linkext :: $(LINKTYPE)
+       @$(NOOP)
+
+
+# --- MakeMaker dlsyms section:
+
+
+# --- MakeMaker dynamic section:
+
+## $(INST_PM) has been moved to the all: target.
+## It remains here for awhile to allow for old usage: "make dynamic"
+#dynamic :: Makefile $(INST_DYNAMIC) $(INST_BOOT) $(INST_PM)
+dynamic :: Makefile $(INST_DYNAMIC) $(INST_BOOT)
+       @$(NOOP)
+
+
+# --- MakeMaker dynamic_bs section:
+
+BOOTSTRAP =
+
+
+# --- MakeMaker dynamic_lib section:
+
+
+# --- MakeMaker static section:
+
+## $(INST_PM) has been moved to the all: target.
+## It remains here for awhile to allow for old usage: "make static"
+#static :: Makefile $(INST_STATIC) $(INST_PM)
+static :: Makefile $(INST_STATIC)
+       @$(NOOP)
+
+
+# --- MakeMaker static_lib section:
+
+
+# --- MakeMaker htmlifypods section:
+
+htmlifypods : pure_all
+       @$(NOOP)
+
+
+# --- MakeMaker manifypods section:
+POD2MAN_EXE = /usr/bin/pod2man
+POD2MAN = $(PERL) -we '%m=@ARGV;for (keys %m){' \
+-e 'next if -e $$m{$$_} && -M $$m{$$_} < -M $$_ && -M $$m{$$_} < -M "Makefile";' \
+-e 'print "Manifying $$m{$$_}\n";' \
+-e 'system(qq[$$^X ].q["-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" $(POD2MAN_EXE) ].qq[$$_>$$m{$$_}])==0 or warn "Couldn\047t install $$m{$$_}\n";' \
+-e 'chmod(oct($(PERM_RW))), $$m{$$_} or warn "chmod $(PERM_RW) $$m{$$_}: $$!\n";}'
+
+manifypods : pure_all API.pm
+       @$(POD2MAN) \
+       API.pm \
+       $(INST_MAN3DIR)/Webmin::API.$(MAN3EXT)
+
+# --- MakeMaker processPL section:
+
+
+# --- MakeMaker installbin section:
+
+
+# --- MakeMaker subdirs section:
+
+# none
+
+# --- MakeMaker clean section:
+
+# Delete temporary files but do not touch installed files. We don't delete
+# the Makefile here so a later make realclean still has a makefile to use.
+
+clean ::
+       -rm -rf ./blib $(MAKE_APERL_FILE) $(INST_ARCHAUTODIR)/extralibs.all perlmain.c mon.out core core.*perl.*.? *perl.core so_locations pm_to_blib *~ */*~ */*/*~ *$(OBJ_EXT) *$(LIB_EXT) perl.exe $(BOOTSTRAP) $(BASEEXT).bso $(BASEEXT).def $(BASEEXT).exp
+       -mv Makefile Makefile.old $(DEV_NULL)
+
+
+# --- MakeMaker realclean section:
+
+# Delete temporary files (via clean) and also delete installed files
+realclean purge ::  clean
+       rm -rf $(INST_AUTODIR) $(INST_ARCHAUTODIR)
+       rm -f $(INST_LIBDIR)/API.pm
+       rm -rf Makefile Makefile.old
+
+
+# --- MakeMaker dist_basics section:
+
+distclean :: realclean distcheck
+
+distcheck :
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Manifest=fullcheck \
+               -e fullcheck
+
+skipcheck :
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Manifest=skipcheck \
+               -e skipcheck
+
+manifest :
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Manifest=mkmanifest \
+               -e mkmanifest
+
+
+# --- MakeMaker dist_core section:
+
+dist : $(DIST_DEFAULT)
+       @$(PERL) -le 'print "Warning: Makefile possibly out of date with $$vf" if ' \
+           -e '-e ($$vf="$(VERSION_FROM)") and -M $$vf < -M "Makefile";'
+
+tardist : $(DISTVNAME).tar$(SUFFIX)
+
+zipdist : $(DISTVNAME).zip
+
+$(DISTVNAME).tar$(SUFFIX) : distdir
+       $(PREOP)
+       $(TO_UNIX)
+       $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
+       $(RM_RF) $(DISTVNAME)
+       $(COMPRESS) $(DISTVNAME).tar
+       $(POSTOP)
+
+$(DISTVNAME).zip : distdir
+       $(PREOP)
+       $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
+       $(RM_RF) $(DISTVNAME)
+       $(POSTOP)
+
+uutardist : $(DISTVNAME).tar$(SUFFIX)
+       uuencode $(DISTVNAME).tar$(SUFFIX) \
+               $(DISTVNAME).tar$(SUFFIX) > \
+               $(DISTVNAME).tar$(SUFFIX)_uu
+
+shdist : distdir
+       $(PREOP)
+       $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
+       $(RM_RF) $(DISTVNAME)
+       $(POSTOP)
+
+
+# --- MakeMaker dist_dir section:
+
+distdir :
+       $(RM_RF) $(DISTVNAME)
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Manifest=manicopy,maniread \
+               -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
+
+
+# --- MakeMaker dist_test section:
+
+disttest : distdir
+       cd $(DISTVNAME) && $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) Makefile.PL
+       cd $(DISTVNAME) && $(MAKE)
+       cd $(DISTVNAME) && $(MAKE) test
+
+
+# --- MakeMaker dist_ci section:
+
+ci :
+       $(PERL) -I$(PERL_ARCHLIB) -I$(PERL_LIB) -MExtUtils::Manifest=maniread \
+               -e "@all = keys %{ maniread() };" \
+               -e 'print("Executing $(CI) @all\n"); system("$(CI) @all");' \
+               -e 'print("Executing $(RCS_LABEL) ...\n"); system("$(RCS_LABEL) @all");'
+
+
+# --- MakeMaker install section:
+
+install :: all pure_install doc_install
+
+install_perl :: all pure_perl_install doc_perl_install
+
+install_site :: all pure_site_install doc_site_install
+
+install_ :: install_site
+       @echo INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
+
+pure_install :: pure_$(INSTALLDIRS)_install
+
+doc_install :: doc_$(INSTALLDIRS)_install
+       @echo Appending installation info to $(INSTALLARCHLIB)/perllocal.pod
+
+pure__install : pure_site_install
+       @echo INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
+
+doc__install : doc_site_install
+       @echo INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
+
+pure_perl_install ::
+       @$(MOD_INSTALL) \
+               read $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist \
+               write $(INSTALLARCHLIB)/auto/$(FULLEXT)/.packlist \
+               $(INST_LIB) $(INSTALLPRIVLIB) \
+               $(INST_ARCHLIB) $(INSTALLARCHLIB) \
+               $(INST_BIN) $(INSTALLBIN) \
+               $(INST_SCRIPT) $(INSTALLSCRIPT) \
+               $(INST_HTMLLIBDIR) $(INSTALLHTMLPRIVLIBDIR) \
+               $(INST_HTMLSCRIPTDIR) $(INSTALLHTMLSCRIPTDIR) \
+               $(INST_MAN1DIR) $(INSTALLMAN1DIR) \
+               $(INST_MAN3DIR) $(INSTALLMAN3DIR)
+       @$(WARN_IF_OLD_PACKLIST) \
+               $(SITEARCHEXP)/auto/$(FULLEXT)
+
+
+pure_site_install ::
+       @$(MOD_INSTALL) \
+               read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
+               write $(INSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
+               $(INST_LIB) $(INSTALLSITELIB) \
+               $(INST_ARCHLIB) $(INSTALLSITEARCH) \
+               $(INST_BIN) $(INSTALLBIN) \
+               $(INST_SCRIPT) $(INSTALLSCRIPT) \
+               $(INST_HTMLLIBDIR) $(INSTALLHTMLSITELIBDIR) \
+               $(INST_HTMLSCRIPTDIR) $(INSTALLHTMLSCRIPTDIR) \
+               $(INST_MAN1DIR) $(INSTALLMAN1DIR) \
+               $(INST_MAN3DIR) $(INSTALLMAN3DIR)
+       @$(WARN_IF_OLD_PACKLIST) \
+               $(PERL_ARCHLIB)/auto/$(FULLEXT)
+
+doc_perl_install ::
+       -@$(MKPATH) $(INSTALLARCHLIB)
+       -@$(DOC_INSTALL) \
+               "Module" "$(NAME)" \
+               "installed into" "$(INSTALLPRIVLIB)" \
+               LINKTYPE "$(LINKTYPE)" \
+               VERSION "$(VERSION)" \
+               EXE_FILES "$(EXE_FILES)" \
+               >> $(INSTALLARCHLIB)/perllocal.pod
+
+doc_site_install ::
+       -@$(MKPATH) $(INSTALLARCHLIB)
+       -@$(DOC_INSTALL) \
+               "Module" "$(NAME)" \
+               "installed into" "$(INSTALLSITELIB)" \
+               LINKTYPE "$(LINKTYPE)" \
+               VERSION "$(VERSION)" \
+               EXE_FILES "$(EXE_FILES)" \
+               >> $(INSTALLARCHLIB)/perllocal.pod
+
+
+uninstall :: uninstall_from_$(INSTALLDIRS)dirs
+
+uninstall_from_perldirs ::
+       @$(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist
+
+uninstall_from_sitedirs ::
+       @$(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
+
+
+# --- MakeMaker force section:
+# Phony target to force checking subdirectories.
+FORCE:
+       @$(NOOP)
+
+
+# --- MakeMaker perldepend section:
+
+
+# --- MakeMaker makefile section:
+
+# We take a very conservative approach here, but it\'s worth it.
+# We move Makefile to Makefile.old here to avoid gnu make looping.
+Makefile : Makefile.PL $(CONFIGDEP)
+       @echo "Makefile out-of-date with respect to $?"
+       @echo "Cleaning current config before rebuilding Makefile..."
+       -@$(RM_F) Makefile.old
+       -@$(MV) Makefile Makefile.old
+       -$(MAKE) -f Makefile.old clean $(DEV_NULL) || $(NOOP)
+       $(PERL) "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" Makefile.PL 
+       @echo "==> Your Makefile has been rebuilt. <=="
+       @echo "==> Please rerun the make command.  <=="
+       false
+
+# To change behavior to :: would be nice, but would break Tk b9.02
+# so you find such a warning below the dist target.
+#Makefile :: $(VERSION_FROM)
+#      @echo "Warning: Makefile possibly out of date with $(VERSION_FROM)"
+
+
+# --- MakeMaker staticmake section:
+
+# --- MakeMaker makeaperl section ---
+MAP_TARGET    = perl
+FULLPERL      = /usr/local/bin/perl
+
+$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
+       $(MAKE) -f $(MAKE_APERL_FILE) $@
+
+$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE)
+       @echo Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
+       @$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) \
+               Makefile.PL DIR= \
+               MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
+               MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=
+
+
+# --- MakeMaker test section:
+
+TEST_VERBOSE=0
+TEST_TYPE=test_$(LINKTYPE)
+TEST_FILE = test.pl
+TEST_FILES = 
+TESTDB_SW = -d
+
+testdb :: testdb_$(LINKTYPE)
+
+test :: $(TEST_TYPE)
+
+test_dynamic :: pure_all
+       PERL_DL_NONLAZY=1 $(FULLPERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(TEST_FILE)
+
+testdb_dynamic :: pure_all
+       PERL_DL_NONLAZY=1 $(FULLPERL) $(TESTDB_SW) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) $(TEST_FILE)
+
+test_ : test_dynamic
+
+test_static :: test_dynamic
+testdb_static :: testdb_dynamic
+
+
+# --- MakeMaker ppd section:
+# Creates a PPD (Perl Package Description) for a binary distribution.
+ppd:
+       @$(PERL) -e "print qq{<SOFTPKG NAME=\"Webmin-API\" VERSION=\"1,0,0,0\">\n}. qq{\t<TITLE>Webmin-API</TITLE>\n}. qq{\t<ABSTRACT></ABSTRACT>\n}. qq{\t<AUTHOR></AUTHOR>\n}. qq{\t<IMPLEMENTATION>\n}. qq{\t\t<OS NAME=\"$(OSNAME)\" />\n}. qq{\t\t<ARCHITECTURE NAME=\"i386-linux\" />\n}. qq{\t\t<CODEBASE HREF=\"\" />\n}. qq{\t</IMPLEMENTATION>\n}. qq{</SOFTPKG>\n}" > Webmin-API.ppd
+
+# --- MakeMaker pm_to_blib section:
+
+pm_to_blib: $(TO_INST_PM)
+       @$(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" \
+       "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -MExtUtils::Install \
+        -e "pm_to_blib({qw{$(PM_TO_BLIB)}},'$(INST_LIB)/auto')"
+       @$(TOUCH) $@
+
+
+# --- MakeMaker selfdocument section:
+
+
+# --- MakeMaker postamble section:
+
+
+# End.
diff --git a/Webmin-API-1.0/Makefile.PL b/Webmin-API-1.0/Makefile.PL
new file mode 100644 (file)
index 0000000..cd3329d
--- /dev/null
@@ -0,0 +1,8 @@
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+WriteMakefile(
+    'NAME'             => 'Webmin::API',
+    'VERSION_FROM'     => 'API.pm', # finds $VERSION
+    'PREREQ_PM'                => {}, # e.g., Module::Name => 1.1
+);
diff --git a/Webmin-API-1.0/pm_to_blib b/Webmin-API-1.0/pm_to_blib
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Webmin-API-1.0/test.pl b/Webmin-API-1.0/test.pl
new file mode 100644 (file)
index 0000000..b9de7ca
--- /dev/null
@@ -0,0 +1,20 @@
+# Before `make install' is performed this script should be runnable with
+# `make test'. After `make install' it should work as `perl test.pl'
+
+######################### We start with some black magic to print on failure.
+
+# Change 1..1 below to 1..last_test_to_print .
+# (It may become useful if the test is moved to ./t subdirectory.)
+
+BEGIN { $| = 1; print "1..1\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use Webmin::API;
+$loaded = 1;
+print "ok 1\n";
+
+######################### End of black magic.
+
+# Insert your test code below (better if it prints "ok 13"
+# (correspondingly "not ok 13") depending on the success of chunk 13
+# of the test code):
+