mirror of
https://github.com/stefanberger/swtpm.git
synced 2025-08-22 19:04:35 +00:00

When creating the user config files, fall back to using ${HOME}/.config if XDG_CONFIG_HOME is not set on a system. Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
if [ -z "${XDG_CONFIG_HOME}" ]; then
|
|
echo "Environment variable XDG_CONFIG_HOME is not set. Using \${HOME}/.config."
|
|
XDG_CONFIG_HOME="${HOME}/.config"
|
|
fi
|
|
|
|
SWTPM_LOCALCA_DIR="${XDG_CONFIG_HOME}/var/lib/swtpm-localca"
|
|
|
|
SWTPM_SETUP_CONF="${XDG_CONFIG_HOME}/swtpm_setup.conf"
|
|
SWTPM_LOCALCA_CONF="${XDG_CONFIG_HOME}/swtpm-localca.conf"
|
|
SWTPM_LOCALCA_OPTIONS="${XDG_CONFIG_HOME}/swtpm-localca.options"
|
|
|
|
FLAG_OVERWRITE=1
|
|
|
|
function help() {
|
|
cat <<_EOF_
|
|
Usage: $1 [options]
|
|
|
|
The following options are supported:
|
|
--overwrite : Overwrite existing config files
|
|
|
|
--help|-h|-? : Display this help screen and exit
|
|
|
|
_EOF_
|
|
}
|
|
|
|
function main() {
|
|
local flags=0
|
|
|
|
while [ $# -ne 0 ]; do
|
|
case "$1" in
|
|
--overwrite) flags=$((flags | FLAG_OVERWRITE));;
|
|
--help|-h|-?) help $0; exit 0;;
|
|
*) echo -e "Unknown option $1\n" >&2; help $0; exit 1;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [[ $((flags & FLAG_OVERWRITE)) -eq 0 ]]; then
|
|
for f in "${SWTPM_SETUP_CONF}" \
|
|
"${SWTPM_LOCALCA_CONF}" \
|
|
"${SWTPM_LOCALCA_OPTIONS}"; do
|
|
if [ -f "${f}" ]; then
|
|
echo "File ${f} already exists. Refusing to overwrite." >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
fi
|
|
|
|
mkdir -p "${SWTPM_LOCALCA_DIR}"
|
|
|
|
echo "Writing ${SWTPM_SETUP_CONF}."
|
|
cat <<_EOF_ > "${SWTPM_SETUP_CONF}"
|
|
create_certs_tool = @DATAROOTDIR@/swtpm/swtpm-localca
|
|
create_certs_tool_config = ${SWTPM_LOCALCA_CONF}
|
|
create_certs_tool_options = ${SWTPM_LOCALCA_OPTIONS}
|
|
_EOF_
|
|
|
|
echo "Writing ${SWTPM_LOCALCA_CONF}."
|
|
cat <<_EOF_ > "${SWTPM_LOCALCA_CONF}"
|
|
statedir = ${SWTPM_LOCALCA_DIR}
|
|
signingkey = ${SWTPM_LOCALCA_DIR}/signkey.pem
|
|
issuercert = ${SWTPM_LOCALCA_DIR}/issuercert.pem
|
|
certserial = ${SWTPM_LOCALCA_DIR}/certserial
|
|
_EOF_
|
|
|
|
echo "Writing ${SWTPM_LOCALCA_OPTIONS}."
|
|
cat <<_EOF_ > "${SWTPM_LOCALCA_OPTIONS}"
|
|
--platform-manufacturer $(uname -s | tr " " "_")
|
|
--platform-version $(uname -r | tr " " "_")
|
|
--platform-model $(uname -s | tr " " "_")
|
|
_EOF_
|
|
|
|
exit 0
|
|
}
|
|
|
|
main "$@"
|