mirror of
https://github.com/hackacad/bastille.git
synced 2026-01-04 03:33:41 +01:00
Merge pull request #918 from BastilleBSD/tschettervictor-patch-2
template: Add LINE_IN_FILE as HOOK
This commit is contained in:
@@ -23,37 +23,39 @@ template hook commands.
|
|||||||
Template Automation Hooks
|
Template Automation Hooks
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| HOOK | format | example |
|
| HOOK | format | example |
|
||||||
+=============+=====================+=========================================+
|
+===============+=====================+=========================================+
|
||||||
| ARG | ARG=VALUE | MINECRAFT_MEMX="1024M" |
|
| ARG | ARG=VALUE | MINECRAFT_MEMX="1024M" |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| CMD | /bin/sh command | /usr/bin/chsh -s /usr/local/bin/zsh |
|
| CMD | /bin/sh command | /usr/bin/chsh -s /usr/local/bin/zsh |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| CONFIG | set property value | set allow.mlock 1 |
|
| CONFIG | set property value | set allow.mlock 1 |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| CP/OVERLAY | path(s) | etc root usr (one per line) |
|
| CP/OVERLAY | path(s) | etc root usr (one per line) |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| INCLUDE | template path/URL | http?://TEMPLATE_URL or project/path |
|
| INCLUDE | template path/URL | http?://TEMPLATE_URL or project/path |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| LIMITS | resource value | memoryuse 1G |
|
| LIMITS | resource value | memoryuse 1G |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| MOUNT | fstab syntax | /host/path container/path nullfs ro 0 0 |
|
| LINE_IN_FILE | line file_path | word /usr/local/word/word.conf |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| OVERLAY | path(s) | etc root usr (one per line) |
|
| MOUNT | fstab syntax | /host/path container/path nullfs ro 0 0 |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| PKG | port/pkg name(s) | vim-console zsh git-lite tree htop |
|
| OVERLAY | path(s) | etc root usr (one per line) |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| RDR | tcp port port | tcp 2200 22 (hostport jailport) |
|
| PKG | port/pkg name(s) | vim-console zsh git-lite tree htop |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| RENDER | /path/file.txt | /usr/local/etc/gitea/conf/app.ini |
|
| RDR | tcp port port | tcp 2200 22 (hostport jailport) |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| RESTART | | (restart jail) |
|
| RENDER | /path/file.txt | /usr/local/etc/gitea/conf/app.ini |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| SERVICE | service command | 'nginx start' OR 'postfix reload' |
|
| RESTART | | (restart jail) |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
| SYSRC | sysrc command(s) | nginx_enable=YES |
|
| SERVICE | service command | 'nginx start' OR 'postfix reload' |
|
||||||
+-------------+---------------------+-----------------------------------------+
|
+---------------+---------------------+-----------------------------------------+
|
||||||
|
| SYSRC | sysrc command(s) | nginx_enable=YES |
|
||||||
|
+---------------+---------------------+-----------------------------------------+
|
||||||
|
|
||||||
Template Hook Descriptions
|
Template Hook Descriptions
|
||||||
--------------------------
|
--------------------------
|
||||||
@@ -70,33 +72,35 @@ will exit.
|
|||||||
ishmael ~ # bastille template azkaban sample/template --arg ARG=VALUE --arg ARG1=VALUE
|
ishmael ~ # bastille template azkaban sample/template --arg ARG=VALUE --arg ARG1=VALUE
|
||||||
|
|
||||||
|
|
||||||
CMD - run the specified command
|
CMD - run the specified command
|
||||||
|
|
||||||
CONFIG - set the specified property and value
|
CONFIG - set the specified property and value
|
||||||
|
|
||||||
CP/OVERLAY - copy specified files from template directory to specified path
|
CP/OVERLAY - copy specified files from template directory to specified path
|
||||||
inside jail
|
inside jail
|
||||||
|
|
||||||
INCLUDE - specify a template to include. Make sure the template is
|
INCLUDE - specify a template to include. Make sure the template is
|
||||||
bootstrapped, or you are using the template url
|
bootstrapped, or you are using the template url
|
||||||
|
|
||||||
LIMITS - set the specified resource value for the jail
|
LIMITS - set the specified resource value for the jail
|
||||||
|
|
||||||
MOUNT - mount specified files/directories inside the jail
|
LINE_IN_FILE - add specified word to specified file if not present
|
||||||
|
|
||||||
PKG - install specified packages inside jail
|
MOUNT - mount specified files/directories inside the jail
|
||||||
|
|
||||||
RDR - redirect specified ports to the jail
|
PKG - install specified packages inside jail
|
||||||
|
|
||||||
RENDER - replace ARG values inside specified files inside the jail. If a
|
RDR - redirect specified ports to the jail
|
||||||
directory is specified, ARGS will be replaced in all files
|
|
||||||
underneath
|
|
||||||
|
|
||||||
RESTART - restart the jail
|
RENDER - replace ARG values inside specified files inside the jail. If a
|
||||||
|
directory is specified, ARGS will be replaced in all files
|
||||||
|
underneath
|
||||||
|
|
||||||
SERVICE - run `service` command inside the jail with specified arguments
|
RESTART - restart the jail
|
||||||
|
|
||||||
SYSRC - run `sysrc` inside the jail with specified arguments
|
SERVICE - run `service` command inside the jail with specified arguments
|
||||||
|
|
||||||
|
SYSRC - run `sysrc` inside the jail with specified arguments
|
||||||
|
|
||||||
Special Hook Cases
|
Special Hook Cases
|
||||||
------------------
|
------------------
|
||||||
|
|||||||
@@ -114,6 +114,19 @@ render() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
line_in_file() {
|
||||||
|
_jailpath="${1}"
|
||||||
|
_filepath="$(echo ${2} | awk '{print $2}')"
|
||||||
|
_line="$(echo ${2} | awk '{print $1}')"
|
||||||
|
if [ -f "${_jailpath}/${_filepath}" ]; then
|
||||||
|
if ! grep -qxF "${_line}" "${_jailpath}/${_filepath}"; then
|
||||||
|
echo "${_line}" >> "${_jailpath}/${_filepath}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
warn "Path not found for line_in_file: ${_filepath}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Handle options.
|
# Handle options.
|
||||||
AUTO=0
|
AUTO=0
|
||||||
while [ "$#" -gt 0 ]; do
|
while [ "$#" -gt 0 ]; do
|
||||||
@@ -380,6 +393,10 @@ for _jail in ${JAILS}; do
|
|||||||
render "${bastille_jail_path}" "${_args}"
|
render "${bastille_jail_path}" "${_args}"
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
|
lif|lineinfile|line_in_file)
|
||||||
|
line_in_file "${bastille_jail_path}" "${_args}"
|
||||||
|
continue
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if ! eval "bastille ${_cmd} ${_jail} ${_args}"; then
|
if ! eval "bastille ${_cmd} ${_jail} ${_args}"; then
|
||||||
|
|||||||
Reference in New Issue
Block a user