diff options
Diffstat (limited to 'src/etc/rc.packages')
-rwxr-xr-x | src/etc/rc.packages | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/etc/rc.packages b/src/etc/rc.packages new file mode 100755 index 0000000..cdca880 --- /dev/null +++ b/src/etc/rc.packages @@ -0,0 +1,88 @@ +#!/usr/local/bin/php-cgi -f +<?php +/* $Id$ */ +/* + rc.packages + part of pfSense (https://www.pfsense.org) + Copyright (C) 2004 Scott Ullrich + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +require_once("config.inc"); +require_once("functions.inc"); +require_once("filter.inc"); +require_once("shaper.inc"); +require_once("captiveportal.inc"); +require_once("pkg-utils.inc"); +require_once("pfsense-utils.inc"); + +function usage() { + print "Usage: rc.packages PKG_NAME (POST-INSTALL|DEINSTALL|POST-DEINSTALL)\n"; + exit(1); +} + +$pkg_interface = "console"; + +/* Keep old behavior: with no params, sync all and exit */ +if ($argc == 1) { + resync_all_package_configs(true); + exit; +} + +$pkg = ''; +$when = ''; + +if (isset($_GET['pkg'])) { + $pkg = $_GET['pkg']; +} else { + $pkg = $argv[1]; +} + +if (isset($_GET['when'])) { + $when = strtolower($_GET['when']); +} else { + $when = strtolower($argv[2]); +} + +if ($pkg == '' || $when == '') { + print "Error: invalid parameters\n"; + usage(); +} + +/* Remove pkg_prefix from pkg name */ +pkg_remove_prefix($pkg); + +switch ($when) { +case "post-install": + install_package_xml($pkg); + break; +case "deinstall": +case "post-deinstall": + delete_package_xml($pkg, $when); + break; +default: + usage(); +} + +?> |