import sqlite3 import os import argparse import json import getpass import datetime import logging import project import action import task import note import pit_argparser # logging.basicConfig(level=logging.DEBUG, format='%(asctime)s :: %(levelname)s :: %(message)s') # logging.basicConfig(level=logging.DEBUG, format='%(levelname)7s :: %(message)s') logging.basicConfig(level=logging.DEBUG, format='%(asctime)s :: {%(filename)10s:%(lineno)d} :: %(funcName)s :: %(levelname)s :: %(message)s') DB_FILENAME = 'pits.db' SCHEMA_FILENAME = 'pits_schema.sql' def get_file_path(file_name): return os.path.join(os.path.dirname(os.path.realpath(__file__)), file_name) def info(): logging.info('info function') def handle_note(args): logging.info('>> handle note') def create_connection(db_filename): db_path = get_file_path(db_filename) logging.debug("Try to connect to {}".format(db_path)) try: conn = sqlite3.connect(db_path) return conn except Error as e: print(e) return None def init(): # TODO Use init command like original pit db_path = get_file_path(DB_FILENAME) logging.debug('Search database in {}'.format(db_path)) db_is_new = not os.path.exists(db_path) if not db_is_new: logging.debug('Database already exist') return with sqlite3.connect(db_path) as conn: logging.info('Creating schema') schema_path = get_file_path(SCHEMA_FILENAME) logging.debug('Schema file path: {}'.format(schema_path)) with open(schema_path, 'rt') as f: schema = f.read() conn.executescript(schema) action_query = ''' INSERT INTO action (username, action, message) VALUES (?, ?, ?); ''' conn.execute(action_query, (getpass.getuser(), 'init', 'Initialized pit',)) # TODO Add schema version # logging.info('Inserting initial data') # conn.executescript(""" # insert into project values(1, 'me', 'test', 'in progress', 'now', 'now')""") if __name__ == '__main__': init() parser = pit_argparser.create_parser() args = parser.parse_args() conn = create_connection(DB_FILENAME) last_action = action.read_last_action(conn) logging.debug('Last action: {}'.format(last_action)) args.func(args, last_action, conn) conn.commit() conn.close() print('END') print(os.path.dirname(os.path.abspath(__file__)))