diff options
Diffstat (limited to 'ezjail.sh')
-rwxr-xr-x | ezjail.sh | 42 |
1 files changed, 17 insertions, 25 deletions
@@ -4,7 +4,7 @@ | |||
4 | # | 4 | # |
5 | # PROVIDE: ezjail | 5 | # PROVIDE: ezjail |
6 | # | 6 | # |
7 | # Note: Add the following lines to /etc/rc.conf to enable ezjail, | 7 | # Add the following lines to /etc/rc.conf.local or /etc/rc.conf to enable ezjail |
8 | # | 8 | # |
9 | #ezjail_enable="YES" | 9 | #ezjail_enable="YES" |
10 | # | 10 | # |
@@ -21,33 +21,25 @@ load_rc_config $name | |||
21 | 21 | ||
22 | ezjail_enable=${ezjail_enable:-"NO"} | 22 | ezjail_enable=${ezjail_enable:-"NO"} |
23 | 23 | ||
24 | restart_cmd="do_restart" | 24 | restart_cmd="do_cmd restart _" |
25 | start_cmd="do_start" | 25 | start_cmd="do_cmd start '_ ezjail'" |
26 | stop_cmd="do_stop" | 26 | stop_cmd="do_cmd stop '_ ezjail'" |
27 | 27 | ||
28 | do_start() | 28 | do_cmd() |
29 | { | 29 | { |
30 | [ -n "$*" ] && jail_list=`echo -n $* | tr -c [:alnum:] _` || echo -n " ezjail" | 30 | action=$1; message=$2; shift 2; |
31 | [ -n "$*" ] && jail_list=`echo -n $* | tr -c "[:alnum:] " _` || echo -n "${message##_}" | ||
31 | jail_list=${jail_list:-`ls ${ezjail_prefix}/etc/ezjail/`} | 32 | jail_list=${jail_list:-`ls ${ezjail_prefix}/etc/ezjail/`} |
32 | for jail in $jail_list; do . ${ezjail_prefix}/etc/ezjail/${jail}; done | 33 | jail_pass="" |
33 | sh /etc/rc.d/jail onestart $jail_list | 34 | for jail in $jail_list; do |
34 | } | 35 | if [ -f ${ezjail_prefix}/etc/ezjail/${jail} ]; then |
35 | 36 | . ${ezjail_prefix}/etc/ezjail/${jail}; | |
36 | do_restart() | 37 | jail_pass="${jail_pass} ${jail}" |
37 | { | 38 | else |
38 | [ -n "$*" ] && jail_list=`echo -n $* | tr -c [:alnum:] _`; | 39 | echo " Warning: Jail ${jail} not found." |
39 | jail_list=${jail_list:-`ls ${ezjail_prefix}/etc/ezjail/`} | 40 | fi |
40 | for jail in $jail_list; do . ${ezjail_prefix}/etc/ezjail/${jail}; done | 41 | done |
41 | sh /etc/rc.d/jail onestop $jail_list | 42 | [ "$jail_pass" ] && sh /etc/rc.d/jail one${action} $jail_pass |
42 | sh /etc/rc.d/jail onestart $jail_list | ||
43 | } | ||
44 | |||
45 | do_stop() | ||
46 | { | ||
47 | [ -n "$*" ] && jail_list=`echo -n $* | tr -c [:alnum:] _` || echo -n " ezjail" | ||
48 | jail_list=${jail_list:-`ls ${ezjail_prefix}/etc/ezjail/`} | ||
49 | for jail in $jail_list; do . ${ezjail_prefix}/etc/ezjail/${jail}; done | ||
50 | sh /etc/rc.d/jail onestop $jail_list | ||
51 | } | 43 | } |
52 | 44 | ||
53 | run_rc_command $* | 45 | run_rc_command $* |