2013-03-17 05:32:29 +04:00
#
2014-01-20 20:09:13 +04:00
# Copyright (C) 2013, 2014 Red Hat, Inc.
2013-03-17 05:32:29 +04:00
#
2018-04-04 16:35:41 +03:00
# This work is licensed under the GNU GPLv2 or later.
2018-03-20 22:00:02 +03:00
# See the COPYING file in the top-level directory.
2013-03-17 05:32:29 +04:00
#
"""
Configuration variables that can be set at build time
"""
import os
2018-03-22 01:00:38 +03:00
import sys
2019-06-11 01:13:31 +03:00
if ( sys . version_info . major != 3 or
sys . version_info . minor < 4 ) : # pragma: no cover
2018-03-22 01:00:38 +03:00
print ( " python 3.4 or later is required, your ' s is %s " %
sys . version_info )
sys . exit ( 1 )
2013-03-17 05:32:29 +04:00
2018-03-22 01:00:38 +03:00
import configparser
2013-03-17 05:32:29 +04:00
2017-10-11 14:35:39 +03:00
_cfg = configparser . ConfigParser ( )
2013-03-17 05:32:29 +04:00
_filepath = os . path . abspath ( __file__ )
_srcdir = os . path . abspath ( os . path . join ( os . path . dirname ( _filepath ) , " .. " ) )
2019-06-14 23:34:00 +03:00
_cfgpath = os . path . join ( os . path . dirname ( _filepath ) , " build.cfg " )
2015-04-06 21:23:10 +03:00
if os . path . exists ( _cfgpath ) :
2019-06-11 01:13:31 +03:00
_cfg . read ( _cfgpath ) # pragma: no cover
2015-04-06 21:23:10 +03:00
2013-10-03 02:42:51 +04:00
_istest = " VIRTINST_TEST_SUITE " in os . environ
2015-04-06 21:23:10 +03:00
_running_from_srcdir = os . path . exists (
2020-01-27 02:29:39 +03:00
os . path . join ( _srcdir , " tests " , " test_cli.py " ) )
2013-03-17 05:32:29 +04:00
2013-04-13 22:34:52 +04:00
2013-03-17 05:32:29 +04:00
def _split_list ( commastr ) :
return [ d for d in commastr . split ( " , " ) if d ]
2013-04-13 22:34:52 +04:00
2019-06-11 01:13:31 +03:00
def _get_param ( name , default ) : # pragma: no cover
2013-10-08 22:42:59 +04:00
if _istest :
return default
try :
2015-04-06 21:23:10 +03:00
return _cfg . get ( " config " , name )
2017-10-11 14:35:39 +03:00
except ( configparser . NoOptionError , configparser . NoSectionError ) :
2013-03-17 05:32:29 +04:00
return default
2013-04-18 01:39:25 +04:00
2019-06-14 23:34:00 +03:00
class _BuildConfig ( object ) :
2015-04-06 22:42:40 +03:00
def __init__ ( self ) :
self . cfgpath = _cfgpath
2024-10-25 15:48:27 +03:00
self . version = _get_param ( " version " , " " )
2015-04-06 22:42:40 +03:00
self . default_graphics = _get_param ( " default_graphics " , " spice " )
2015-04-06 23:29:28 +03:00
self . default_hvs = _split_list ( _get_param ( " default_hvs " , " " ) )
2015-04-06 22:42:40 +03:00
self . prefix = None
self . gettext_dir = None
self . ui_dir = None
self . icon_dir = None
2015-11-03 00:19:31 +03:00
self . gsettings_dir = None
2019-06-14 23:34:00 +03:00
self . running_from_srcdir = _running_from_srcdir
self . _set_paths_by_prefix ( _get_param ( " prefix " , " /usr " ) )
2015-04-06 22:42:40 +03:00
2019-06-14 23:34:00 +03:00
def _set_paths_by_prefix ( self , prefix ) :
2015-04-06 22:42:40 +03:00
self . prefix = prefix
self . gettext_dir = os . path . join ( prefix , " share " , " locale " )
2019-06-14 23:34:00 +03:00
if self . running_from_srcdir :
2015-04-06 22:42:40 +03:00
self . ui_dir = os . path . join ( _srcdir , " ui " )
2015-11-03 00:19:31 +03:00
self . icon_dir = os . path . join ( _srcdir , " data " )
self . gsettings_dir = self . icon_dir
2019-06-11 01:13:31 +03:00
else : # pragma: no cover
2015-11-03 00:19:31 +03:00
self . ui_dir = os . path . join ( prefix , " share " , " virt-manager " , " ui " )
2015-04-06 22:42:40 +03:00
self . icon_dir = os . path . join ( prefix , " share " , " virt-manager " ,
" icons " )
2015-11-03 00:19:31 +03:00
self . gsettings_dir = os . path . join ( prefix , " share " ,
" glib-2.0 " , " schemas " )
2015-04-06 22:42:40 +03:00
2019-06-14 23:34:00 +03:00
BuildConfig = _BuildConfig ( )