added production commands and final config structure
This commit is contained in:
		
							
								
								
									
										16
									
								
								carom/cli.py
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								carom/cli.py
									
									
									
									
									
								
							@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					import uuid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import click
 | 
					import click
 | 
				
			||||||
from click_didyoumean import DYMGroup
 | 
					from click_didyoumean import DYMGroup
 | 
				
			||||||
import click_log
 | 
					import click_log
 | 
				
			||||||
@@ -13,6 +15,19 @@ click_log.basic_config(root_logger)
 | 
				
			|||||||
def cli():
 | 
					def cli():
 | 
				
			||||||
    pass
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cli.command()
 | 
				
			||||||
 | 
					def get_gpio():
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Get the current status of all Tables.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@cli.command()
 | 
				
			||||||
 | 
					def get_uuid():
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Get the UUID of the Client. This is need to add a new client to the carom server installation.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    click.echo(uuid.uuid5(uuid.NAMESPACE_DNS, str(uuid.getnode())))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@cli.command()
 | 
					@cli.command()
 | 
				
			||||||
def run():
 | 
					def run():
 | 
				
			||||||
@@ -21,7 +36,6 @@ def run():
 | 
				
			|||||||
    """
 | 
					    """
 | 
				
			||||||
    pass
 | 
					    pass
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
@cli.command()
 | 
					@cli.command()
 | 
				
			||||||
def check_config():
 | 
					def check_config():
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,2 +1,14 @@
 | 
				
			|||||||
[test]
 | 
					[connection]
 | 
				
			||||||
foo = bar
 | 
					endpoint = https://carom.einsle.de/{0}
 | 
				
			||||||
 | 
					token =
 | 
				
			||||||
 | 
					[mapping]
 | 
				
			||||||
 | 
					20 = 1
 | 
				
			||||||
 | 
					16 = 2
 | 
				
			||||||
 | 
					12 = 3
 | 
				
			||||||
 | 
					7  = 4
 | 
				
			||||||
 | 
					8  = 5
 | 
				
			||||||
 | 
					25 = 6
 | 
				
			||||||
 | 
					24 = 7
 | 
				
			||||||
 | 
					18 = 8
 | 
				
			||||||
 | 
					[logging]
 | 
				
			||||||
 | 
					file = /var/log/carom-client.log
 | 
				
			||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
import configparser
 | 
					import configparser
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from voluptuous import Schema, Error
 | 
					from voluptuous import Schema, Error, Range, All, Coerce
 | 
				
			||||||
from voluptuous.humanize import validate_with_humanized_errors
 | 
					from voluptuous.humanize import validate_with_humanized_errors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from carom.const import CONFIG_FILES, DEFAULT_CONFIG
 | 
					from carom.const import CONFIG_FILES, DEFAULT_CONFIG
 | 
				
			||||||
@@ -14,9 +14,16 @@ _parser.read(CONFIG_FILES)
 | 
				
			|||||||
# Convert the ConfigParser object to a real dict now:
 | 
					# Convert the ConfigParser object to a real dict now:
 | 
				
			||||||
_parser_dict = {s: dict(_parser.items(s)) for s in _parser.sections()}
 | 
					_parser_dict = {s: dict(_parser.items(s)) for s in _parser.sections()}
 | 
				
			||||||
_schema = Schema({
 | 
					_schema = Schema({
 | 
				
			||||||
    'test': {
 | 
					    'connection': {
 | 
				
			||||||
        'foo': str,
 | 
					        'endpoint': str,
 | 
				
			||||||
 | 
					        'token': str,
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    'mapping': {
 | 
				
			||||||
 | 
					        All(Coerce(int), Range(0, 28)): All(Coerce(int), Range(1, 8)),
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    'logging': {
 | 
				
			||||||
 | 
					        'file': str
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
try:
 | 
					try:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,6 @@
 | 
				
			|||||||
from pkg_resources import resource_string
 | 
					from pkg_resources import resource_string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AVAILABLE_PINS = range(0, 28)
 | 
					 | 
				
			||||||
"""Pins available for Configuration"""
 | 
					 | 
				
			||||||
DEFAULT_CONFIG = resource_string(__name__, 'client.ini').decode()
 | 
					DEFAULT_CONFIG = resource_string(__name__, 'client.ini').decode()
 | 
				
			||||||
"""Default configfile, that is used as a Fallback if no other configuration exists."""
 | 
					"""Default configfile, that is used as a Fallback if no other configuration exists."""
 | 
				
			||||||
CONFIG_FILES = ('~/.config/carom/client.ini', '/etc/carom/client.ini')
 | 
					CONFIG_FILES = ('/boot/carom-client.conf', )
 | 
				
			||||||
"""Order of resolution of Config Files. Files are tried in order, first one found is used."""
 | 
					"""Order of resolution of Config Files. Files are tried in order, first one found is used."""
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
.\" Man page generated from reStructuredText.
 | 
					.\" Man page generated from reStructuredText.
 | 
				
			||||||
.
 | 
					.
 | 
				
			||||||
.TH "CAROM-CLIENT" "1" "05.11.2018" "" "Carom Client"
 | 
					.TH "CAROM-CLIENT" "1" "22.11.2018" "" "Carom Client"
 | 
				
			||||||
.SH NAME
 | 
					.SH NAME
 | 
				
			||||||
carom-client \- Carom Client Documentation
 | 
					carom-client \- Carom Client Documentation
 | 
				
			||||||
.
 | 
					.
 | 
				
			||||||
@@ -58,6 +58,32 @@ carom\-client check\-config [OPTIONS]
 | 
				
			|||||||
.fi
 | 
					.fi
 | 
				
			||||||
.UNINDENT
 | 
					.UNINDENT
 | 
				
			||||||
.UNINDENT
 | 
					.UNINDENT
 | 
				
			||||||
 | 
					.SH GET-GPIO
 | 
				
			||||||
 | 
					.sp
 | 
				
			||||||
 | 
					Get the current status of all Tables.
 | 
				
			||||||
 | 
					.INDENT 0.0
 | 
				
			||||||
 | 
					.INDENT 3.5
 | 
				
			||||||
 | 
					.sp
 | 
				
			||||||
 | 
					.nf
 | 
				
			||||||
 | 
					.ft C
 | 
				
			||||||
 | 
					carom\-client get\-gpio [OPTIONS]
 | 
				
			||||||
 | 
					.ft P
 | 
				
			||||||
 | 
					.fi
 | 
				
			||||||
 | 
					.UNINDENT
 | 
				
			||||||
 | 
					.UNINDENT
 | 
				
			||||||
 | 
					.SH GET-UUID
 | 
				
			||||||
 | 
					.sp
 | 
				
			||||||
 | 
					Get the UUID of the Client. This is need to add a new client to the carom server installation.
 | 
				
			||||||
 | 
					.INDENT 0.0
 | 
				
			||||||
 | 
					.INDENT 3.5
 | 
				
			||||||
 | 
					.sp
 | 
				
			||||||
 | 
					.nf
 | 
				
			||||||
 | 
					.ft C
 | 
				
			||||||
 | 
					carom\-client get\-uuid [OPTIONS]
 | 
				
			||||||
 | 
					.ft P
 | 
				
			||||||
 | 
					.fi
 | 
				
			||||||
 | 
					.UNINDENT
 | 
				
			||||||
 | 
					.UNINDENT
 | 
				
			||||||
.SH RUN
 | 
					.SH RUN
 | 
				
			||||||
.sp
 | 
					.sp
 | 
				
			||||||
This command runs the carom\-client daemon process.
 | 
					This command runs the carom\-client daemon process.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user