From 75485eeb62781e00b5c4876116538056a5fd617f Mon Sep 17 00:00:00 2001 From: Evgeny Sinelnikov Date: Thu, 16 Apr 2020 06:31:45 +0400 Subject: [PATCH] gpupdate-setup: get default localpolicy from /etc/altlinux-release --- dist/gpupdate-setup | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/dist/gpupdate-setup b/dist/gpupdate-setup index 91c3439..51aaedd 100755 --- a/dist/gpupdate-setup +++ b/dist/gpupdate-setup @@ -23,12 +23,29 @@ import sys import argparse import subprocess +import re + def command(args): try: subprocess.check_call(args.split()) except: print ('command: \'%s\' error' % args) +def get_default_localpolicy(): + localpolicy = 'workstation' + + try: + release = '/etc/altlinux-release' + if os.path.isfile(release): + f = open(release) + s = f.readline() + if re.search('server', s, re.I): + localpolicy = 'server' + except: + pass + + return localpolicy + def parse_arguments(): ''' Parse CLI arguments. @@ -98,6 +115,9 @@ def get_policy_variants(): return general_listing +def validate_policy_name(policy_name): + return policy_name in [os.path.basename(d) for d in get_policy_variants()] + def get_status(): systemd_unit_link = '/etc/systemd/system/multi-user.target.wants/gpupdate.service' @@ -123,14 +143,16 @@ def disable_gp(): command('systemctl disable gpupdate.service') command('systemctl --global --user disable gpupdate-user.service') -def enable_gp(policy_name='default'): +def enable_gp(policy_name): policy_dir = '/usr/share/local-policy' etc_policy_dir = '/etc/local-policy' - target_policy_name = 'default' + target_policy_name = get_default_localpolicy() if policy_name: - target_policy_name = policy_name + if validate_policy_name(policy_name): + target_policy_name = policy_name - default_policy_name = os.path.join(policy_dir, policy_name) + print (target_policy_name) + default_policy_name = os.path.join(policy_dir, target_policy_name) active_policy_name = os.path.join(etc_policy_dir, 'active') if not os.path.isdir(etc_policy_dir):