aboutsummaryrefslogtreecommitdiff
path: root/src/property/cmd.lisp
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-02-22 14:31:56 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-02-22 14:31:56 -0700
commit26a97fed28b2c0b6444f2d57386e0c34198bc896 (patch)
tree945d623df2bc8e789ac77f324eb52ff9092f471e /src/property/cmd.lisp
parent1bc931c93e8a5c8290ad9afafb82ecf19ef73f26 (diff)
downloadconsfigurator-26a97fed28b2c0b6444f2d57386e0c34198bc896.tar.gz
a better name for CMD:SINGLE
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
Diffstat (limited to 'src/property/cmd.lisp')
-rw-r--r--src/property/cmd.lisp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/property/cmd.lisp b/src/property/cmd.lisp
new file mode 100644
index 0000000..1e6a94c
--- /dev/null
+++ b/src/property/cmd.lisp
@@ -0,0 +1,29 @@
+;;; Consfigurator -- Lisp declarative configuration management system
+
+;;; Copyright (C) 2020-2021 Sean Whitton <spwhitton@spwhitton.name>
+
+;;; This file 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, or (at your option)
+;;; any later version.
+
+;;; This file 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+(in-package :consfigurator.property.cmd)
+
+(defprop single :posix (&rest args)
+ "A property which can be applied by running a single shell command. ARGS is
+either a single string specifying a shell-escaped command, or number of
+strings which will be shell-escaped and then concatenated.
+
+(Note that bypassing the shell can only be done within a :LISP property.)
+
+Keyword argument :ENV is a plist of environment variables to be set when
+running the command, using env(1)."
+ (:apply (apply #'run args)))