annotate collector/progs_all.py @ 4:5ad799e534a5

move to subdir
author drewp@bigasterisk.com
date Mon, 13 Mar 2023 18:50:23 -0700
parents progs_all.py@3d7fc94a404a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
1 import psutil
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
2 from typing import Dict, List, Optional
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
3
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
4
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
5 def progname(cmdline: List[str]) -> Optional[str]:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
6 if len(cmdline) < 1:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
7 return None
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
8 if cmdline[-1].endswith('/steam'):
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
9 return 'steam'
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
10 if cmdline[0].endswith('/minecraft-launcher'):
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
11 return 'minecraft-launcher'
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
12 if cmdline[0].endswith('/java') and '--versionType' in cmdline:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
13 return 'minecraft'
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
14 if cmdline[0].endswith('/RobloxPlayer'):
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
15 return 'roblox'
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
16
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
17
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
18 def get_running_progs() -> Dict[str, int]:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
19 progs = set()
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
20 for proc in psutil.process_iter(['pid', 'name']):
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
21 try:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
22 prog = progname(proc.cmdline())
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
23 if prog:
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
24 progs.add(prog)
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
25 except (psutil.AccessDenied, psutil.NoSuchProcess):
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
26 pass
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
27 return dict(
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
28 (p, p in progs)
3d7fc94a404a a few more inputs; daemonize
drewp@bigasterisk.com
parents:
diff changeset
29 for p in ['steam', 'minecraft-launcher', 'minecraft', 'roblox'])