diff --git a/conf/type/__package_luarocks/explorer/pkg_status b/conf/type/__package_luarocks/explorer/pkg_status new file mode 100755 index 00000000..3eb73298 --- /dev/null +++ b/conf/type/__package_luarocks/explorer/pkg_status @@ -0,0 +1,31 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist 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. +# +# cdist 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 cdist. If not, see . +# +# Retrieve the status of a rock +# + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +# Accept luarocks failing if package is not known/installed +luarocks list "$name" | egrep -A1 "^$name$" || exit 0 diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote new file mode 100755 index 00000000..179022b1 --- /dev/null +++ b/conf/type/__package_luarocks/gencode-remote @@ -0,0 +1,52 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist 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. +# +# cdist 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 cdist. If not, see . +# +# +# Manage LuaRocks packages +# + + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +state="$(cat "$__object/parameter/state")" +is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)" + +case "$state" in + installed) + # Install only if non-existent + if [ -z "$is_installed" ]; then + echo luarocks install \"$name\" + fi + ;; + removed) + # Remove only if existent + if [ -n "$is_installed" ]; then + echo luarocks remove \"$name\" + fi + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; +esac diff --git a/conf/type/__package_luarocks/man.text b/conf/type/__package_luarocks/man.text new file mode 100644 index 00000000..6c1e6734 --- /dev/null +++ b/conf/type/__package_luarocks/man.text @@ -0,0 +1,49 @@ +cdist-type__package_luarocks(7) +============================== +Christian G. Warden + + +NAME +---- +cdist-type__package_luarocks - Manage luarocks packages + + +DESCRIPTION +----------- +LuaRocks is a deployment and management system for Lua modules. + + +REQUIRED PARAMETERS +------------------- +state:: + Either "installed" or "removed". + + +OPTIONAL PARAMETERS +------------------- +name:: + If supplied, use the name and not the object id as the package name. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Ensure luasocket is installed +__package_luarocks luasocket --state installed + +# Remove package +__package_luarocks luasocket --state removed +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- cdist-type__package(7) + + +COPYING +------- +Copyright \(C) 2012 SwellPath, Inc. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__package_luarocks/manifest b/conf/type/__package_luarocks/manifest new file mode 100644 index 00000000..8e626714 --- /dev/null +++ b/conf/type/__package_luarocks/manifest @@ -0,0 +1,23 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist 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. +# +# cdist 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 cdist. If not, see . +# + +__package luarocks --state installed +__package make --state installed diff --git a/conf/type/__package_luarocks/parameter/optional b/conf/type/__package_luarocks/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/conf/type/__package_luarocks/parameter/optional @@ -0,0 +1 @@ +name diff --git a/conf/type/__package_luarocks/parameter/required b/conf/type/__package_luarocks/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/conf/type/__package_luarocks/parameter/required @@ -0,0 +1 @@ +state