changeset 0:02d30d4e5ec8

Initial import
author Michael J. Flickinger <mjflick@gnu.org>
date Sun, 18 Jan 2009 15:01:27 -0500
parents
children e0a2e4b7ce0c
files Changes LICENSE Makefile.PL README lib/Savane.pm lib/Savane/Controller/Root.pm lib/Savane/Model/DB.pm lib/Savane/Schema.pm lib/Savane/View/TT.pm root/favicon.ico root/static/images/btn_120x50_built.png root/static/images/btn_120x50_built_shadow.png root/static/images/btn_120x50_powered.png root/static/images/btn_120x50_powered_shadow.png root/static/images/btn_88x31_built.png root/static/images/btn_88x31_built_shadow.png root/static/images/btn_88x31_powered.png root/static/images/btn_88x31_powered_shadow.png root/static/images/catalyst_logo.png root/templates/main_page.tt savane.conf script/savane_cgi.pl script/savane_create.pl script/savane_fastcgi.pl script/savane_server.pl script/savane_test.pl t/01app.t t/02pod.t t/03podcoverage.t t/model_DB.t t/view_TT.t
diffstat 31 files changed, 1397 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/Changes
@@ -0,0 +1,4 @@
+This file documents the revision history for Perl extension Savane.
+
+0.01  2009-01-18 14:06:11
+        - initial revision, generated by Catalyst
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
new file mode 100644
--- /dev/null
+++ b/Makefile.PL
@@ -0,0 +1,19 @@
+# IMPORTANT: if you delete this file your app will not work as
+# expected.  you have been warned
+use inc::Module::Install;
+
+name 'Savane';
+all_from 'lib/Savane.pm';
+
+requires 'Catalyst::Runtime' => '5.7014';
+requires 'Catalyst::Plugin::ConfigLoader';
+requires 'Catalyst::Plugin::Static::Simple';
+requires 'Catalyst::Action::RenderView';
+requires 'parent';
+requires 'Config::General'; # This should reflect the config file format you've chosen
+                 # See Catalyst::Plugin::ConfigLoader for supported formats
+catalyst;
+
+install_script glob('script/*.pl');
+auto_install;
+WriteAll;
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,1 @@
+Run script/savane_server.pl to test the application.
new file mode 100644
--- /dev/null
+++ b/lib/Savane.pm
@@ -0,0 +1,74 @@
+package Savane;
+
+use strict;
+use warnings;
+
+use Catalyst::Runtime '5.70';
+
+# Set flags and add plugins for the application
+#
+#         -Debug: activates the debug mode for very useful log messages
+#   ConfigLoader: will load the configuration from a Config::General file in the
+#                 application's home directory
+# Static::Simple: will serve static files from the application's root 
+#                 directory
+
+use parent qw/Catalyst/;
+
+our $VERSION = '0.01';
+
+# Configure the application. 
+#
+# Note that settings in savane.conf (or other external
+# configuration file that you set up manually) take precedence
+# over this when using ConfigLoader. Thus configuration
+# details given here can function as a default configuration,
+# with a external configuration file acting as an override for
+# local deployment.
+
+__PACKAGE__->config( name => 'Savane' );
+
+# Start the application
+__PACKAGE__->setup(qw/-Debug ConfigLoader Static::Simple/);
+
+=head1 NAME
+
+Savane - Web framework for Savane interface.
+
+=head1 SYNOPSIS
+
+    script/savane_server.pl
+
+=head1 DESCRIPTION
+
+Savane
+
+=head1 SEE ALSO
+
+L<Savane::Controller::Root>, L<Catalyst>
+
+=head1 AUTHOR
+
+Michael J. Flickinger  C<< <mjflick@gnu.org> >>
+
+=head1 LICENSE
+
+    Savane
+    Copyright (C) 2009 - Savannah Hackers
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+1;
new file mode 100644
--- /dev/null
+++ b/lib/Savane/Controller/Root.pm
@@ -0,0 +1,83 @@
+package Savane::Controller::Root;
+
+use strict;
+use warnings;
+use parent 'Catalyst::Controller';
+
+#
+# Sets the actions in this controller to be registered with no prefix
+# so they function identically to actions created in MyApp.pm
+#
+__PACKAGE__->config->{namespace} = '';
+
+=head1 NAME
+
+Savane::Controller::Root - Root Controller for Savane
+
+=head1 DESCRIPTION
+
+[enter your description here]
+
+=head1 METHODS
+
+=cut
+
+=head2 index
+
+=cut
+
+sub index :Path :Args(0) {
+    my ( $self, $c ) = @_;
+
+    # example of a template being called
+    $c->stash->{remote_host} = $c->req->address;
+    $c->stash->{template} = 'templates/main_page.tt';
+}
+
+sub default :Path {
+    my ( $self, $c ) = @_;
+    $c->response->body( 'Page not found' );
+    $c->response->status(404);
+    
+}
+
+=head2 end 
+
+Allow for "post processing" of in our application.
+* Write some code for handling "server errors".
+* Also, attempt to render a view, if needed.
+
+=cut 
+
+sub end : Private {
+    my ( $self, $c ) = @_;
+
+    return if $c->res->body; # already have a response
+    $c->forward( 'Savane::View::TT' ); # render template
+}
+
+=head1 AUTHOR
+
+Michael J. Flickinger  C<< <mjflick@gnu.org> >>
+
+=head1 LICENSE
+
+    Savane
+    Copyright (C) 2009 - Savannah Hackers
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+1;
new file mode 100644
--- /dev/null
+++ b/lib/Savane/Model/DB.pm
@@ -0,0 +1,50 @@
+package Savane::Model::DB;
+
+use strict;
+use base 'Catalyst::Model::DBIC::Schema';
+
+__PACKAGE__->config(
+    schema_class => 'Savane::Schema',
+    connect_info => [
+        'dbi:mysql:dbname=savane_dev',
+        'root',
+    ],   
+);
+
+=head1 NAME
+
+Savane::Model::DB - Catalyst DBIC Schema Model
+
+=head1 SYNOPSIS
+
+See L<Savane>
+
+=head1 DESCRIPTION
+
+L<Catalyst::Model::DBIC::Schema> Model using schema L<Savane::Schema>
+
+=head1 AUTHOR
+
+Michael J. Flickinger  C<< <mjflick@gnu.org> >>
+
+=head1 LICENSE
+
+    Savane
+    Copyright (C) 2009 - Savannah Hackers
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+1;
new file mode 100644
--- /dev/null
+++ b/lib/Savane/Schema.pm
@@ -0,0 +1,48 @@
+package Savane::Schema;
+
+use strict;
+use base qw/DBIx::Class::Schema::Loader/;
+
+__PACKAGE__->loader_options(
+    relationships => 1,
+    # debug => 1,
+);
+
+=head1 NAME
+
+Savane::Schema - DBIx::Class::Schema::Loader class
+
+=head1 SYNOPSIS
+
+See L<Savane>
+
+=head1 DESCRIPTION
+
+Generated by L<Catalyst::Model::DBIC::Schema> for use in L<Savane::Model::DB>
+
+=head1 AUTHOR
+
+Michael J. Flickinger  C<< <mjflick@gnu.org> >>
+
+=head1 LICENSE
+
+    Savane
+    Copyright (C) 2009 - Savannah Hackers
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+1;
+
new file mode 100644
--- /dev/null
+++ b/lib/Savane/View/TT.pm
@@ -0,0 +1,40 @@
+package Savane::View::TT;
+
+use strict;
+use base 'Catalyst::View::TT';
+
+__PACKAGE__->config(TEMPLATE_EXTENSION => '.tt');
+
+=head1 NAME
+
+Savane::View::TT - TT View for Savane
+
+=head1 DESCRIPTION
+
+TT View for Savane. 
+
+=head1 AUTHOR
+
+Michael J. Flickinger  C<< <mjflick@gnu.org> >>
+
+=head1 LICENSE
+
+    Savane
+    Copyright (C) 2009 - Savannah Hackers
+
+    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 3 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, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+1;
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5ad723dc416e8ad9c8dea9457a564c59499466e9
GIT binary patch
literal 2551
zc%1E4&rcIk5T4fJ!yhO=lxo3Ru_7!gh!UY8`~g5nfRqqUgj2)GD;!$F0TKw1z=d!!
z5SqXNNKe2YASW@YSWRPBQs_okX-Q+3y6BG6g#;Fa)W&#`Nhb5Ynfbn*x7ob606Ne^
zW+qTf2S*w}A;3PifWrVVOu3>&j@$x!eaB3<7xa2R^z{XysmTXkuM8ab5+)}_*4fFk
zwl*JOiFyPW9gRY5tw7iZ9#5Es!wT!|m7%*^g6wP_W@kmx5MX#X3^g^Y%x3d3Syl)K
zp{2zKf*^z29R;V8Cq0QRFH6knl)-HFQeB{2kmeAep@9d#Ut%1$%G_=dIyw^1RHz<?
ziHRuHgM@kJ@kmUP6c`wgNizy_b0R(03pN`MilUHqkeN(8X^Y4A4#4*PBs;60)&Gln
z#VK~<S(ygwtvQE~(R??poO-SrD@>2mi*J{d7%6+xdg)?bQ2}?0t1L})mESMFa?Sz;
z7YZI8Pz!Ud51w8=!1>p8x+nPu*pzQD<lfT`V}7K?rPr=#6X&xsHJDlNXmCb$#&7m`
z$~#KRwCAkl#6JATHZrn-d3hgka8OQ(-`Kc@_4OaHxmoxl-tMk~i;FR&vmB?UKH>cQ
z7tK69J#n=sVWH42x?EADJBA!-EhC-rI6l6O@wlSVwcFpS^VHRC;@H?W(p`e>?VAV?
zB#)5C)M&ShxU-`in=3KL^z>&nMj}7a>-~;&_Ymj(zJ{Pix?7UoE62UUs;YN1*E)HS
z)&a_`CCzua0$5%B8vFY<$Tw;IhH~pk^FyJys=;w9SX{h<m6dDg_wOXlKWa-$F<e;q
zmNGvUQ*dY~f?HcZQr2)d0+^K*z^<;;_R-qvQ@<1Xr$~wK@qERZ8BvXY(-J4`$zFB@
O=Nwua%>ahyFMa`#fIOxE
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c709fd67191037b89c6cfcdd821b9afb3b0447e7
GIT binary patch
literal 3826
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..15142fe2a751e6f6bdaaba78ec5bd2a3a80d2b27
GIT binary patch
literal 3681
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7249b47ea06cfd54ee78d4aded9088912e9c6884
GIT binary patch
literal 3862
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
U#u9YuYXLxQBdwZe;HaYi0UKhVf&c&j
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e6876c08fc78dcad5e4fd5a2e895f3522ad63a13
GIT binary patch
literal 3673
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..007b5db69b5ca488c325c0115ad87a7bc6a129f7
GIT binary patch
literal 2517
zc%0={`#;kS8~%z&R1zxmMCpkqPYS6-qMXWMHaRREP!45|Q-q$!p^`UJB#NfZImaQ%
zp(aeiu+8D?Fq;XB*^HfR^X~mS-urZY?q9C!zCZUb_cMr#{f_OL+W`RB;plJ)Dn&18
z9^57?t?nAaVJXN3T02_<z{nWM)yr7g??>8tAz@(w$OpcWcL3|#VSaaX91*^Occ6EC
zZ^uUbxMKkTvH--%-L_Xwj_B%|pa1StU?88*BRzaLKp2>%P{y;flai7)03a(XtMtkh
z1Ol-Jf?|FB*?MeIanW35rC3?{%n5^>tQQO#O$di~KYcQJ{5XTbV9Us`X|(u+_~tLo
za5!A3srdn2IG&u${nQv37)bs8oxQTs)!o(c9hZ^z<bFg5wyt^&iKI{{{rx{d5S*Nx
zoci)*adDB!V3Zc4L2z8`=xBEQXxh`{U%!53K2PPx$HQPSEEXFX8EI>IdS+$@dd0R;
zO73?(BO`riXt27nyrQCfhC-S5@yUCgH46YB0JOEXEG;cD0Dv+xEfEM9>gwa;V`C#^
zhN0olpS_)3oh0ILQbKI==TAR+@a<pQx;i@?ZO(DI>q7v5#(apoAK`!9YlK9quBm$e
z_RZtO1Oj28^E+;7>32wgF9wz0@$IVwhnt<H(P-3>Q8G9@>}+=d--B;yZE0(1W+*9b
zZf@Gy*-0c4u~;k;iI_~LP$*nqU+44rTrQVHCXvacwY4>YK(M;H%HgbvMPfRg&SJ4R
z91fGY?BnAj5{ouAHdw3`Hk(bKql?7im6etJ-0Wp0lSCq|a#ls6|8X-{n2QXlFG^*2
zJRX<F_44u}lSo;a>2SFBGIRNcryF^MED-R=!SRKKc`}&{j*YR{tkSZQiqay1q9PpT
zoDdT=L>OQ&7Nw(bR##V6m~{GVVPPSr2<;8`o}<&}=A<$At-W=#tBXh?_7xPYbJqul
z2+U=stAkBVZ8dw9Jv}`oqRmR)qt-Ya%ESZ(jh?r%+GH@+&CG;C!Aw%3Br);#@86pe
z35Ug6TVI=+n&Paoot&JC(Wr3{9334kD=VccDG4`(bHhW78Om&5pP;mqK^SQI{AqG>
zqPx3`85zl4ULL5amM+R>EOz6&xeE&)D?f@Q;+x(u3Xw<|9c8mvpX#w>42E1@#^dwG
zs;a!<a4MC`$K$0(*<T-W2moXNB-91A`TuPIjHhq}0Jgd~Ub1$N0V{J9A$vUc;r&xQ
zR0bC~f9z3L^K?#H&`f=m+JFwWHB`5#(AafpXRvK{t{hfTQA>4?gOkqgEvacUk9jd%
zNW*ADqglopwhGbM2!e5U%f-`wx@(&>CX1%m6E;`cHbXL|yhkj*Zfov{d!g_XmCLV7
z$-LAV-BOppkH-BBHql!OHOtVFd^fVZDBq->ay&M~KeViM&(^w{rzt7%j(_&HT-G1G
z*Y~oPXrJNa>S~3f`n1(oT({i)JnU<|q@$oSL3=>4OlDfJiOUJ!H!HlV*I2&i4SsFu
z?AvM5Rkf-pyAhM_)lzcrKW_SJy)_cZUWr^{N9EFUnyx6QmH@@Qj7z_Hj4`A1pDrje
ziiPOzNy>83KcuJH6>t-F+3X71Fh}1}Ez91zcOk}~eLfbiP6>Qdec!L<8bo}dbfWkX
za3@92<_D+oki~`B<=MKpYcZFPFje2HhE;xMm<$-U@47mvdFF(U&I|zruaU5{0X6m~
zR+{-+P5F_e80|my`h^8H_`%Qwuka!@f5TIn_~!xyvZmg%@L{ps2~BIms*Y%k+XG`$
z2eErla%f9vTu>sjXeX(Da*$|oK;Jw-qSR0UB^*FS6ye=(-0<*dp95PkTV!QxuDZ9n
z;cA;IL&DCMD8tYt`iJ9-Uj6$D=-p<bZD0aD!cd)*4fiyGbN)iHACpLZThr<3EtdNp
zIzth@V-J_cJYM%s9Q^h!EEBPi9g8{ee&Lsi+umCC;IyKN@yYr2K*2(t@#BztaVE`e
zmPUkIsp*K&jOz0iB-z_Xj{NP=+k1KScC5ukg+iJB{<=WrSffVQ`KBoy*m>f>S-e+Q
zVqN>`jW2eXp}S4Najgr<(M=H#{4w_*9O;34B)NOs&9i(B%DX9-sd(NsJ&E3@jY!@R
zGhRYIu1>uU?^iw%@KdAan*A#qZ17ZO;JJNdJ-s^liw@iO?(TGo++nTant9J7)kDQO
z&p65J;;WR@9=&b428T6HS;s0G?0J@&hw5nl9huYq{#-;)X8YF+=ETbIJOLRVEHpfi
zLiM@2JgL*x)pHqm>iy-GMPHDH#~}aqNmUMKh`uNYV&7Kr;CRjygl7_7*S|l*Uyh2J
z56u@(iv;z$ENmT$noYiS!mFy5j*d@^exW-m+>q%sGcA-)zFK>fr(+(}bu#|c7Nm}m
zOdU*4{+P`OF`S7^%zv$wWv<MxUO6rMabpMPB+cE~^x``8Z4m!i_`c+t$P1^k<{Wfg
z%5V`{<|x@KJLy-@A9tr!Ct}D(J>JW^e;;jVaDwE)ol7dMak;)?BbVGF(AT)U@SMAG
zgNnofRT!~stOuihu$^zzf+Q*WJq^~qd;$K{zgW58L9Pl&g`Cy?>qPr$3+4|NYXsUR
zIV>KUfZ59_@KCB6BlCV^yDcGG6JDtO-SDCbQ*hq^>q))(ZxOdZ|5}*+{WghuO84S=
zO6~=A@k0YurHYC*`zYL*XimOb+J~KRFaGF16vOI`h{4qGyWRz!R@vzgyZ*asMt1w%
zoy}fB_d|o_drORUYB02+M-?uHwpItxWnyUNw_w9|Yg)<pL=gDo-MC$gx(irdG~YHg
z|J@ok9eFMoEN*D_F*C7vHx+u?x#hZP6~w&%cquU;%An80t<}c5rOy;$MhqzKUxJ!1
zn*PeEer>ODzH`oVLqUOO5U+POXpyt)<I4lPbghm~E6nEDYZ={O;(1o-My`n9JouPx
zd^d3z`6!LqcyB&>$n%X^`pNTun3`d)?bkw1Zgg~%zj<(MU3=5$@f6N#i!$(1F8-Th
Ut#h9AEdv~FT`pDI+)66^FB~`OF8}}l
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ccf4624b5de3d4a0c4b5f772bcce7ad247e2a237
GIT binary patch
literal 2274
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..8f0cd9f41f699794f919bc2c8fc8e0ab3e7297f0
GIT binary patch
literal 2542
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
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..aa776fa40f8e6d41c5277be33b0e16b10c1def92
GIT binary patch
literal 2304
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
a0|4eoa7M-5CQbkV002ovPDHLkV1l4dqzaP&
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..21f1cac7a9e12236982adf3f548dcaee560cbabb
GIT binary patch
literal 13710
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
new file mode 100644
--- /dev/null
+++ b/root/templates/main_page.tt
@@ -0,0 +1,4 @@
+Welcome to a whole new world of Savannah'ing.<p>
+
+By the way, you seem to be connecting from [% remote_host %]
+
new file mode 100644
--- /dev/null
+++ b/savane.conf
@@ -0,0 +1,3 @@
+# rename this file to Savane.yml and put a : in front of "name" if
+# you want to use yaml like in old versions of Catalyst
+name Savane
new file mode 100755
--- /dev/null
+++ b/script/savane_cgi.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl -w
+
+BEGIN { $ENV{CATALYST_ENGINE} ||= 'CGI' }
+
+use strict;
+use warnings;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Savane;
+
+Savane->run;
+
+1;
+
+=head1 NAME
+
+savane_cgi.pl - Catalyst CGI
+
+=head1 SYNOPSIS
+
+See L<Catalyst::Manual>
+
+=head1 DESCRIPTION
+
+Run a Catalyst application as a cgi script.
+
+=head1 AUTHOR
+
+Sebastian Riedel, C<sri@oook.de>
+
+=head1 COPYRIGHT
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
new file mode 100755
--- /dev/null
+++ b/script/savane_create.pl
@@ -0,0 +1,75 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use Catalyst::Helper;
+
+my $force = 0;
+my $mech  = 0;
+my $help  = 0;
+
+GetOptions(
+    'nonew|force'    => \$force,
+    'mech|mechanize' => \$mech,
+    'help|?'         => \$help
+ );
+
+pod2usage(1) if ( $help || !$ARGV[0] );
+
+my $helper = Catalyst::Helper->new( { '.newfiles' => !$force, mech => $mech } );
+
+pod2usage(1) unless $helper->mk_component( 'Savane', @ARGV );
+
+1;
+
+=head1 NAME
+
+savane_create.pl - Create a new Catalyst Component
+
+=head1 SYNOPSIS
+
+savane_create.pl [options] model|view|controller name [helper] [options]
+
+ Options:
+   -force        don't create a .new file where a file to be created exists
+   -mechanize    use Test::WWW::Mechanize::Catalyst for tests if available
+   -help         display this help and exits
+
+ Examples:
+   savane_create.pl controller My::Controller
+   savane_create.pl controller My::Controller BindLex
+   savane_create.pl -mechanize controller My::Controller
+   savane_create.pl view My::View
+   savane_create.pl view MyView TT
+   savane_create.pl view TT TT
+   savane_create.pl model My::Model
+   savane_create.pl model SomeDB DBIC::Schema MyApp::Schema create=dynamic\
+   dbi:SQLite:/tmp/my.db
+   savane_create.pl model AnotherDB DBIC::Schema MyApp::Schema create=static\
+   dbi:Pg:dbname=foo root 4321
+
+ See also:
+   perldoc Catalyst::Manual
+   perldoc Catalyst::Manual::Intro
+
+=head1 DESCRIPTION
+
+Create a new Catalyst Component.
+
+Existing component files are not overwritten.  If any of the component files
+to be created already exist the file will be written with a '.new' suffix.
+This behavior can be suppressed with the C<-force> option.
+
+=head1 AUTHOR
+
+Sebastian Riedel, C<sri@oook.de>
+Maintained by the Catalyst Core Team.
+
+=head1 COPYRIGHT
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
new file mode 100755
--- /dev/null
+++ b/script/savane_fastcgi.pl
@@ -0,0 +1,80 @@
+#!/usr/bin/perl -w
+
+BEGIN { $ENV{CATALYST_ENGINE} ||= 'FastCGI' }
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Savane;
+
+my $help = 0;
+my ( $listen, $nproc, $pidfile, $manager, $detach, $keep_stderr );
+ 
+GetOptions(
+    'help|?'      => \$help,
+    'listen|l=s'  => \$listen,
+    'nproc|n=i'   => \$nproc,
+    'pidfile|p=s' => \$pidfile,
+    'manager|M=s' => \$manager,
+    'daemon|d'    => \$detach,
+    'keeperr|e'   => \$keep_stderr,
+);
+
+pod2usage(1) if $help;
+
+Savane->run( 
+    $listen, 
+    {   nproc   => $nproc,
+        pidfile => $pidfile, 
+        manager => $manager,
+        detach  => $detach,
+	keep_stderr => $keep_stderr,
+    }
+);
+
+1;
+
+=head1 NAME
+
+savane_fastcgi.pl - Catalyst FastCGI
+
+=head1 SYNOPSIS
+
+savane_fastcgi.pl [options]
+ 
+ Options:
+   -? -help      display this help and exits
+   -l -listen    Socket path to listen on
+                 (defaults to standard input)
+                 can be HOST:PORT, :PORT or a
+                 filesystem path
+   -n -nproc     specify number of processes to keep
+                 to serve requests (defaults to 1,
+                 requires -listen)
+   -p -pidfile   specify filename for pid file
+                 (requires -listen)
+   -d -daemon    daemonize (requires -listen)
+   -M -manager   specify alternate process manager
+                 (FCGI::ProcManager sub-class)
+                 or empty string to disable
+   -e -keeperr   send error messages to STDOUT, not
+                 to the webserver
+
+=head1 DESCRIPTION
+
+Run a Catalyst application as fastcgi.
+
+=head1 AUTHOR
+
+Sebastian Riedel, C<sri@oook.de>
+Maintained by the Catalyst Core Team.
+
+=head1 COPYRIGHT
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
new file mode 100755
--- /dev/null
+++ b/script/savane_server.pl
@@ -0,0 +1,115 @@
+#!/usr/bin/perl -w
+
+BEGIN { 
+    $ENV{CATALYST_ENGINE} ||= 'HTTP';
+    $ENV{CATALYST_SCRIPT_GEN} = 31;
+    require Catalyst::Engine::HTTP;
+}  
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+
+my $debug             = 0;
+my $fork              = 0;
+my $help              = 0;
+my $host              = undef;
+my $port              = $ENV{SAVANE_PORT} || $ENV{CATALYST_PORT} || 3000;
+my $keepalive         = 0;
+my $restart           = $ENV{SAVANE_RELOAD} || $ENV{CATALYST_RELOAD} || 0;
+my $restart_delay     = 1;
+my $restart_regex     = '(?:/|^)(?!\.#).+(?:\.yml$|\.yaml$|\.conf|\.pm)$';
+my $restart_directory = undef;
+my $follow_symlinks   = 0;
+
+my @argv = @ARGV;
+
+GetOptions(
+    'debug|d'             => \$debug,
+    'fork'                => \$fork,
+    'help|?'              => \$help,
+    'host=s'              => \$host,
+    'port=s'              => \$port,
+    'keepalive|k'         => \$keepalive,
+    'restart|r'           => \$restart,
+    'restartdelay|rd=s'   => \$restart_delay,
+    'restartregex|rr=s'   => \$restart_regex,
+    'restartdirectory=s@' => \$restart_directory,
+    'followsymlinks'      => \$follow_symlinks,
+);
+
+pod2usage(1) if $help;
+
+if ( $restart && $ENV{CATALYST_ENGINE} eq 'HTTP' ) {
+    $ENV{CATALYST_ENGINE} = 'HTTP::Restarter';
+}
+if ( $debug ) {
+    $ENV{CATALYST_DEBUG} = 1;
+}
+
+# This is require instead of use so that the above environment
+# variables can be set at runtime.
+require Savane;
+
+Savane->run( $port, $host, {
+    argv              => \@argv,
+    'fork'            => $fork,
+    keepalive         => $keepalive,
+    restart           => $restart,
+    restart_delay     => $restart_delay,
+    restart_regex     => qr/$restart_regex/,
+    restart_directory => $restart_directory,
+    follow_symlinks   => $follow_symlinks,
+} );
+
+1;
+
+=head1 NAME
+
+savane_server.pl - Catalyst Testserver
+
+=head1 SYNOPSIS
+
+savane_server.pl [options]
+
+ Options:
+   -d -debug          force debug mode
+   -f -fork           handle each request in a new process
+                      (defaults to false)
+   -? -help           display this help and exits
+      -host           host (defaults to all)
+   -p -port           port (defaults to 3000)
+   -k -keepalive      enable keep-alive connections
+   -r -restart        restart when files get modified
+                      (defaults to false)
+   -rd -restartdelay  delay between file checks
+   -rr -restartregex  regex match files that trigger
+                      a restart when modified
+                      (defaults to '\.yml$|\.yaml$|\.conf|\.pm$')
+   -restartdirectory  the directory to search for
+                      modified files, can be set mulitple times
+                      (defaults to '[SCRIPT_DIR]/..')
+   -follow_symlinks   follow symlinks in search directories
+                      (defaults to false. this is a no-op on Win32)
+ See also:
+   perldoc Catalyst::Manual
+   perldoc Catalyst::Manual::Intro
+
+=head1 DESCRIPTION
+
+Run a Catalyst Testserver for this application.
+
+=head1 AUTHOR
+
+Sebastian Riedel, C<sri@oook.de>
+Maintained by the Catalyst Core Team.
+
+=head1 COPYRIGHT
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
new file mode 100755
--- /dev/null
+++ b/script/savane_test.pl
@@ -0,0 +1,54 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+use FindBin;
+use lib "$FindBin::Bin/../lib";
+use Catalyst::Test 'Savane';
+
+my $help = 0;
+
+GetOptions( 'help|?' => \$help );
+
+pod2usage(1) if ( $help || !$ARGV[0] );
+
+print request($ARGV[0])->content . "\n";
+
+1;
+
+=head1 NAME
+
+savane_test.pl - Catalyst Test
+
+=head1 SYNOPSIS
+
+savane_test.pl [options] uri
+
+ Options:
+   -help    display this help and exits
+
+ Examples:
+   savane_test.pl http://localhost/some_action
+   savane_test.pl /some_action
+
+ See also:
+   perldoc Catalyst::Manual
+   perldoc Catalyst::Manual::Intro
+
+=head1 DESCRIPTION
+
+Run a Catalyst action from the command line.
+
+=head1 AUTHOR
+
+Sebastian Riedel, C<sri@oook.de>
+Maintained by the Catalyst Core Team.
+
+=head1 COPYRIGHT
+
+This library is free software, you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=cut
new file mode 100644
--- /dev/null
+++ b/t/01app.t
@@ -0,0 +1,7 @@
+use strict;
+use warnings;
+use Test::More tests => 2;
+
+BEGIN { use_ok 'Catalyst::Test', 'Savane' }
+
+ok( request('/')->is_success, 'Request should succeed' );
new file mode 100644
--- /dev/null
+++ b/t/02pod.t
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+use Test::More;
+
+eval "use Test::Pod 1.14";
+plan skip_all => 'Test::Pod 1.14 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_files_ok();
new file mode 100644
--- /dev/null
+++ b/t/03podcoverage.t
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+use Test::More;
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@;
+plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD};
+
+all_pod_coverage_ok();
new file mode 100644
--- /dev/null
+++ b/t/model_DB.t
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+use Test::More tests => 1;
+
+BEGIN { use_ok 'Savane::Model::DB' }
+
new file mode 100644
--- /dev/null
+++ b/t/view_TT.t
@@ -0,0 +1,6 @@
+use strict;
+use warnings;
+use Test::More tests => 1;
+
+BEGIN { use_ok 'Savane::View::TT' }
+