xref: /freebsd/release/tools/ec2_desktop_extras (revision a9710349513f4c6ccb8bcff34fa9ea186fae6114)
1#!/bin/sh
2
3# KEYWORD: firstboot
4# PROVIDE: ec2_desktop_extras
5# REQUIRE: ldconfig
6# BEFORE: ec2_setpass
7# BEFORE: xrdp
8
9# Forcibly enabled; this script will not be included (in fact will be
10# deleted entirely) once its functionality is included elsewhere.
11ec2_desktop_extras_enable=YES
12
13. /etc/rc.subr
14
15name="ec2_desktop_extras"
16rcvar=ec2_desktop_extras_enable
17start_cmd="ec2_desktop_extras_run"
18stop_cmd=":"
19
20ec2_desktop_extras_run()
21{
22
23	# These should run at first boot from pkg triggers, but those
24	# aren't included in VM images yet.
25	/usr/bin/makewhatis /usr/share/man
26	/usr/bin/makewhatis /usr/share/openssl/man
27	/usr/local/bin/fc-cache -s
28	/usr/local/bin/glib-compile-schemas /usr/local/share/glib-2.0/schemas
29	/usr/local/bin/gio-querymodules /usr/local/lib/gio/modules
30	/usr/local/bin/gdk-pixbuf-query-loaders --update-cache
31	/usr/local/bin/update-desktop-database -q
32	/usr/local/bin/update-mime-database /usr/local/share/mime
33	for d in /usr/local/share/icons/*/; do
34		[ -d "$d" ] || continue
35		/usr/local/bin/gtk-update-icon-cache -q -t -f "${d%/}"
36	done
37
38	# This should from from an rc.d script in xrdp.
39	RSAKEYS=/usr/local/etc/xrdp/rsakeys.ini
40	PRIVATEKEY=/usr/local/etc/xrdp/key.pem
41	CERTIFICATE=/usr/local/etc/xrdp/cert.pem
42	# make sure rsakeys and certificates are private
43	umask 077
44	# generate rsakeys.ini
45	[ -e "$RSAKEYS" ] || /usr/local/bin/xrdp-keygen xrdp "$RSAKEYS" && \
46	# generate self-signed certificate
47	[ -e "$PRIVATEKEY" -a -e "$CERTIFICATE" ] || \
48	    /usr/bin/openssl req \
49		 -x509 \
50		 -newkey rsa:4096 \
51		 -keyout "$PRIVATEKEY" \
52		 -sha256 \
53		 -nodes \
54		 -out "$CERTIFICATE" \
55		 -days 365 \
56		 -subj "/CN=$(hostname)"
57}
58
59load_rc_config $name
60run_rc_command "$1"
61