blob: 959a49248ead420497733f0374d7bbb56e44c7c2 (
plain)
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
|
#!/usr/bin/python3
import re
import sys
MAX_CPU = 511
def validate_isolcpus(value):
pattern = re.compile(r'^(\d{1,3}(-\d{1,3})?)(,(\d{1,3}(-\d{1,3})?))*$')
if not pattern.fullmatch(value):
return False
flat_list = []
for part in value.split(','):
if '-' in part:
start, end = map(int, part.split('-'))
if start > end or start < 0 or end > MAX_CPU:
return False
flat_list.extend(range(start, end + 1))
else:
num = int(part)
if num < 0 or num > MAX_CPU:
return False
flat_list.append(num)
for i in range(1, len(flat_list)):
if flat_list[i] <= flat_list[i - 1]:
return False
return True
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Usage: python3 cpu.py <cpu_list>")
sys.exit(1)
input_value = sys.argv[1]
if validate_isolcpus(input_value):
sys.exit(0)
else:
sys.exit(1)
|