87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
|
#!/bin/sh
|
||
|
#
|
||
|
# The Qubes OS Project, http://www.qubes-os.org
|
||
|
#
|
||
|
# Copyright (C) 2015 Marek Marczykowski-Górecki
|
||
|
# <marmarek@invisiblethingslab.com>
|
||
|
#
|
||
|
# This program 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 2
|
||
|
# of the License, or (at your option) any later version.
|
||
|
#
|
||
|
# This program 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, write to the Free Software
|
||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||
|
#
|
||
|
#
|
||
|
|
||
|
BEGIN_MARKER="### QUBES BEGIN ###"
|
||
|
END_MARKER="### QUBES END ###"
|
||
|
|
||
|
set -e
|
||
|
|
||
|
### helper functions begin ###
|
||
|
|
||
|
# set proxy in given config file
|
||
|
update_conf() {
|
||
|
local CONF_PATH="$1"
|
||
|
local CONF_OPTIONS="$2"
|
||
|
|
||
|
# Ensure that Qubes conf markers are present in the file
|
||
|
if ! grep -q "$BEGIN_MARKER" $CONF_PATH; then
|
||
|
if grep -q "$END_MARKER" $CONF_PATH; then
|
||
|
echo "ERROR: found QUBES END marker but not QUBES BEGIN in ${CONF_PATH}" >&2
|
||
|
echo "Fix the file by either removing both of them, or adding missing back and retry" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
cp $CONF_PATH ${CONF_PATH}.qubes-orig
|
||
|
echo "$BEGIN_MARKER" >> $CONF_PATH
|
||
|
echo "$END_MARKER" >> $CONF_PATH
|
||
|
elif ! grep -q "$END_MARKER" $CONF_PATH; then
|
||
|
echo "ERROR: found QUBES BEGIN marker but not QUBES END in ${CONF_PATH}" >&2
|
||
|
echo "Fix the file by either removing both of them, or adding missing back and retry" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Prepare config block
|
||
|
local tmpfile=`mktemp`
|
||
|
cat > ${tmpfile} <<EOF
|
||
|
# This part of configuration, until QUBES END, is automatically generated by
|
||
|
# $0. All changes here will be overriden.
|
||
|
# If you want to override any option set here, set it again to desired value,
|
||
|
# below this section
|
||
|
$CONF_OPTIONS
|
||
|
EOF
|
||
|
|
||
|
# And insert it between the markers
|
||
|
sed -i -e "/^$BEGIN_MARKER$/,/^$END_MARKER$/{
|
||
|
/^$END_MARKER$/b
|
||
|
/^$BEGIN_MARKER$/!d
|
||
|
r ${tmpfile}
|
||
|
}" ${CONF_PATH}
|
||
|
rm -f ${tmpfile}
|
||
|
}
|
||
|
|
||
|
### helper functions end
|
||
|
|
||
|
if [ -e /etc/dnf/dnf.conf ]; then
|
||
|
update_conf /etc/dnf/dnf.conf "
|
||
|
reposdir=/etc/yum.real.repos.d
|
||
|
installonlypkgs = kernel, kernel-qubes-vm
|
||
|
distroverpkg = qubes-release"
|
||
|
fi
|
||
|
|
||
|
if [ -e /etc/yum.conf ]; then
|
||
|
update_conf /etc/yum.conf "
|
||
|
reposdir=/etc/yum.real.repos.d
|
||
|
installonlypkgs = kernel, kernel-qubes-vm
|
||
|
distroverpkg = qubes-release"
|
||
|
fi
|
||
|
|