From 79e19ecd47905e754d7407bedb1cb52bbe6cb5a3 Mon Sep 17 00:00:00 2001 From: Nick Sweeting Date: Sat, 24 Apr 2021 03:51:38 -0400 Subject: [PATCH] shield pwd import for windows --- archivebox/config.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/archivebox/config.py b/archivebox/config.py index a0d7edd5..6f031faf 100644 --- a/archivebox/config.py +++ b/archivebox/config.py @@ -25,7 +25,6 @@ import os import io import re import sys -import pwd import json import getpass import platform @@ -49,6 +48,15 @@ from .config_stubs import ( ConfigDefaultDict, ) +SYSTEM_USER = getpass.getuser() or os.getlogin() + +try: + import pwd + SYSTEM_USER = pwd.getpwuid(os.geteuid()).pw_name or SYSTEM_USER +except ModuleNotFoundError: + # pwd is only needed for some linux systems, doesn't exist on windows + pass + ############################### Config Schema ################################## CONFIG_SCHEMA: Dict[str, ConfigDefaultDict] = { @@ -313,7 +321,7 @@ ALLOWED_IN_OUTPUT_DIR = { DYNAMIC_CONFIG_SCHEMA: ConfigDefaultDict = { 'TERM_WIDTH': {'default': lambda c: lambda: shutil.get_terminal_size((100, 10)).columns}, - 'USER': {'default': lambda c: pwd.getpwuid(os.geteuid()).pw_name or getpass.getuser() or os.getlogin()}, + 'USER': {'default': lambda c: SYSTEM_USER}, 'ANSI': {'default': lambda c: DEFAULT_CLI_COLORS if c['USE_COLOR'] else {k: '' for k in DEFAULT_CLI_COLORS.keys()}}, 'PACKAGE_DIR': {'default': lambda c: Path(__file__).resolve().parent},