aboutsummaryrefslogtreecommitdiff
path: root/scripts/boot.py
blob: 2d1461acf3c2fa2d99af4cfc45db3c8dd10d6337 (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
import os
import sys
import subprocess
import shutil
import importlib

import utils
import initialize
from conf import conf
from conf import sf
from exceptions import MissingFile
import database

def boot(config, to_database = True):
	try:
		os.mkdir(sf(conf.output_folder))
	except FileExistsError:
			pass

	sprc = subprocess.Popen(conf.boot_command, stdout = subprocess.PIPE)
	with open(os.path.join(sf(conf.output_folder), config.cfile), "a") as f:
		for linen in sprc.stdout:
			line = linen.decode('utf-8')
			if conf.boot_output:
				print(line, end="")
			f.write(line)

	# Let user script parse double value

	value = None
	try:
		out = utils.callsubprocess('parse_command', conf.parse_command +
                                [os.path.join(conf.output_folder, config.cfile)],
				conf.parse_output, True)
		value = float(out[0])
	except Exception as e:
		print("W: parse exception: " + e.__str__())

	if to_database:
			dtb = database.database()
			dtb.add_measure(config.cfile, config.id, value)

	return config.cfile