-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmydirectories.py
executable file
·80 lines (55 loc) · 2.39 KB
/
mydirectories.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/usr/bin/env python3
import os
import sys
import subprocess
import pwd
import grp
import getpass
debug = False
def get_args():
# get user
user = getpass.getuser()
# get group
try:
group_id = pwd.getpwnam(user).pw_gid
group_name = grp.getgrgid(group_id).gr_name
except:
sys.exit('Unknown user: '+user)
return user, group_name
def construct_dirs(user, group):
dirs = {}
dirs['grace'] = {'home': '/vast/palmer/home.grace/{1}'.format(group, user),
'project': '/gpfs/gibbs/project/{0}/{1}'.format(group, user),
'scratch60': '/vast/palmer/scratch/{0}/{1}'.format(group, user)
}
dirs['mccleary'] = {'home': '/vast/palmer/home.mccleary/{1}'.format(group, user),
'project': '/gpfs/gibbs/project/{0}/{1}'.format(group, user),
'scratch60': '/vast/palmer/scratch/{0}/{1}'.format(group, user)
}
dirs['farnam'] = {'home': '/gpfs/ysm/home/{0}'.format(user),
'project': '/gpfs/ysm/project/{0}/{1}'.format(group, user),
'scratch60': '/gpfs/ysm/scratch60/{0}/{1}'.format(group, user)
}
dirs['ruddle'] = {'home': '/gpfs/ycga/home/{0}'.format(user),
'project': '/gpfs/ycga/project/{0}/{1}'.format(group, user),
'scratch60': '/gpfs/ycga/scratch60/{0}/{1}'.format(group, user)
}
return dirs
def print_output(dirs):
print("Full directory paths for {}:\n".format(user))
for cluster in ['grace', 'mccleary', 'farnam', 'ruddle']:
if (os.path.exists(dirs[cluster]['home']) or os.path.exists(dirs[cluster]['project']) or
os.path.exists(dirs[cluster]['scratch60'])):
print(cluster.title())
print('=====')
if os.path.exists(dirs[cluster]['home']):
print('{0:9} {1}'.format('home', dirs[cluster]['home']))
if os.path.exists(dirs[cluster]['project']):
print('{0:9} {1}'.format('project', dirs[cluster]['project']))
if os.path.exists(dirs[cluster]['scratch60']):
print('{0:9} {1}'.format('scratch60', dirs[cluster]['scratch60']))
print(' ')
if (__name__ == '__main__'):
user, group = get_args()
dirs = construct_dirs(user, group)
print_output(dirs)