)
}
+# Usage: cmd_i <cmd> ... <file>
+#
+# Run <cmd> with all arguments (including the last file) and write the result
+# to the temporary file <file>.tmp and then renamed that file to <file>. This
+# can't be done in-place (e.g. cmd <file >file) because it truncates the file.
+cmd_i() {
+ # Get last argument.
+ last=
+ for x; do
+ last="$x"
+ done
+
+ "$@" >"$last".tmp
+ mv "$last".tmp "$last"
+}
+
+# Usage: sed_i ... <file>
+#
+# sed -i is not compatible due to different implementations. See cmd_i.
+sed_i() {
+ cmd_i sed "$@"
+}
+
# Print the current OS. The following OS are supported at the moment:
# - Debian (debian)
# - Gentoo (gentoo)