@@ -19,6 +19,7 @@ from typing import Iterable, List
1919DEFAULT_STAGING_ROOT = Path (
2020 "/glade/campaign/collections/gdex/data/d651077/cesmdata/inputdata"
2121)
22+ STAGE_OWNER = "cesmdata"
2223
2324
2425def build_parser () -> argparse .ArgumentParser :
@@ -48,6 +49,7 @@ def build_parser() -> argparse.ArgumentParser:
4849 "-inputdata" ,
4950 dest = "inputdata" ,
5051 metavar = "inputdata_dir" ,
52+ # TODO: This should be a module-level variable
5153 default = os .path .join (
5254 "/glade" , "campaign" , "cesm" , "cesmdata" , "cseg" , "inputdata"
5355 ),
@@ -130,10 +132,9 @@ def ensure_running_as(target_user: str, argv: list[str]) -> None:
130132
131133 if os .geteuid () != target_uid :
132134 if not sys .stdin .isatty ():
133- # TODO: Do not hard-code "cesmdata" here
134135 print (
135- "rimport: need interactive TTY to authenticate as 'cesmdata ' (2FA).\n "
136- " Try: sudo -u cesmdata rimport …" ,
136+ f "rimport: need interactive TTY to authenticate as '{ target_user } ' (2FA).\n "
137+ f " Try: sudo -u { target_user } rimport …" ,
137138 file = sys .stderr ,
138139 )
139140 # TODO: Raise Python error instead of SystemExit
@@ -166,11 +167,11 @@ def main(argv: List[str] | None = None) -> int:
166167 parser = build_parser ()
167168 args = parser .parse_args (argv )
168169
169- # Ensure we are running as the cesmdata account before touching the tree
170- # Set env var RIMPORT_SKIP_USER_CHECK=1 if you prefer to run `sudox -u cesmdata rimport …`
170+ # Ensure we are running as the STAGE_OWNER account before touching the tree
171+ # Set env var RIMPORT_SKIP_USER_CHECK=1 if you prefer to run `sudox -u STAGE_OWNER rimport …`
171172 # explicitly (or for testing).
172173 if os .getenv ("RIMPORT_SKIP_USER_CHECK" ) != "1" :
173- ensure_running_as ("cesmdata" , sys .argv )
174+ ensure_running_as (STAGE_OWNER , sys .argv )
174175
175176 root = Path (args .inputdata ).expanduser ().resolve ()
176177 if not root .exists ():
0 commit comments