diff options
author | mcrane <mctch@yahoo.com> | 2009-05-14 02:04:20 -0600 |
---|---|---|
committer | mcrane <mctch@yahoo.com> | 2009-05-14 02:06:06 -0600 |
commit | fd12957b5b87b842571ead4f6c5521702ae2a285 (patch) | |
tree | 64ade4e5914532bd1b6a9a8884e8a8581f81c15f /config/shellcmd/shellcmd.inc | |
parent | 453ac62f3a5ca0ebde04d61cba0c7931665dd032 (diff) | |
download | pfsense-packages-fd12957b5b87b842571ead4f6c5521702ae2a285.tar.gz pfsense-packages-fd12957b5b87b842571ead4f6c5521702ae2a285.tar.bz2 pfsense-packages-fd12957b5b87b842571ead4f6c5521702ae2a285.zip |
Shellcmd package debut
Diffstat (limited to 'config/shellcmd/shellcmd.inc')
-rw-r--r-- | config/shellcmd/shellcmd.inc | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/config/shellcmd/shellcmd.inc b/config/shellcmd/shellcmd.inc new file mode 100644 index 00000000..76ceeb31 --- /dev/null +++ b/config/shellcmd/shellcmd.inc @@ -0,0 +1,124 @@ +<?php +/* $Id$ */ +/* +/* ========================================================================== */ +/* + shellcmd.inc + Copyright (C) 2008 Mark J Crane + 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("services.inc"); + +function pkg_is_service_running($servicename) +{ + exec("/bin/ps ax | awk '{ print $5 }'", $psout); + array_shift($psout); + foreach($psout as $line) { + $ps[] = trim(array_pop(explode(' ', array_pop(explode('/', $line))))); + } + if(is_service_running($servicename, $ps) or is_process_running($servicename) ) { + return true; + } + else { + return false; + } +} + +function php_sync_package() +{ + + global $config; + //synch shellcmd tab + //configure_shellcmd(); + //$handle = popen("/usr/local/etc/rc.d/shellcmd.sh stop", "r"); + //pclose($handle); + //$handle = popen("/usr/local/etc/rc.d/shellcmd.sh start", "r"); + //pclose($handle); + +} + + +function php_install_command() +{ + + global $config; + conf_mount_rw(); + config_lock(); + + if (!is_dir('/usr/local/www/packages/')) { + exec("mkdir /usr/local/www/packages/"); + } + + if (!is_dir('/usr/local/www/packages/shellcmd/')) { + exec("mkdir /usr/local/www/packages/shellcmd/"); + } + + + //rename PHP files from .tmp to .php + exec("cp /tmp/shellcmd.tmp /usr/local/www/packages/shellcmd/shellcmd.php"); + unlink_if_exists("/tmp/shellcmd.tmp"); + + exec("cp /tmp/shellcmd_edit.tmp /usr/local/www/packages/shellcmd/shellcmd_edit.php"); + unlink_if_exists("/tmp/shellcmd_edit.tmp"); + + //write_config(); + + //write_rcfile(array( + // "file" => "shellcmd.sh", + // "start" => "/usr/sbin/shellcmd -s &", + // "stop" => "kill -9 `cat /var/run/shellcmd.pid`" + // ) + //); + + php_sync_package(); + + //if (pkg_is_service_running('shellcmd')) { + //documentation purposes + //} + + conf_mount_ro(); + config_unlock(); + +} + + +function deinstall_command() +{ + + conf_mount_rw(); + config_lock(); + $handle = popen("/usr/local/etc/rc.d/shellcmd.sh stop", "r"); + unlink_if_exists("/usr/local/pkg/shellcmd.xml"); + unlink_if_exists("/usr/local/www/shellcmd.inc"); + exec("rm -R /usr/local/www/packages/shellcmd"); + //unlink_if_exists("/usr/local/etc/rc.d/shellcmd.sh"); + conf_mount_ro(); + config_unlock(); + +} + +?>
\ No newline at end of file |