U /�X� � @ s~ d Z ddlZddlZddlZddlZddlmZ ddlmZ ddddgZ e� d ej�Zd&d d�Z e�� dd � �Ze�� ejdddd�ejdddd�ejdddd�ejdddd�ejdddd�d'dd�������Ze�� e�d�ejd dd!d�ejdddd�ejdddd�ejdddd�d(d"d#�������Ze�� e�d�ejdddd�ejdddd�ejdddd�d)d$d%������ZdS )*z CLI integration. � N)�connect)�string_typesZWARNING�INFO�DEBUGZNOTSETz\s+$c C s ddl m} ddlm} ddlm} t| }i }zNttj � | d���2}||�� ||� |�d|�}|�d|�� � }W 5 Q R X W n tk r� Y nX t|t�r�t|�}|�|� z||| d�W S tk � r� } z|�| � t�d � W Y �S d } ~ X Y nX d S ) Nr )�LOGGER)�exec_in)�Routerzconf.pyZDATABASEZ LOGGING_LEVEL)Zmigrate_dir� )Zpeewee_migrater �peewee_migrate.compatr Zpeewee_migrate.routerr �VERBOSE�open�os�path�join�read�get�upper�IOError� isinstancer r ZsetLevel�RuntimeError�error�sys�exit) � directory�database�verboser r r Z logging_levelZconfigZcfg�exc� r �/cli.py� get_router s( r c C s d S )Nr r r r r �cli+ s r z--namezSelect migration)�default�helpz --databasezDatabase connectionz--directory� migrationsz%Directory where migrations are storedz--fakeFzRun migration as fake.z-vz --verboseT)�countc C s6 t |||�}|j| |d�}|r2t�dd�|� � dS )z Run migrations. )�fakezMigrations completed: %sz, N)r �run�clickZechor )�namer r r r% �routerr# r r r �migrate0 s r* r( z--autoz@Create migrations automatically. Set path to your models module.c C s t |||�}|j| |d� dS )z Create migration. )�autoN)r �create)r( r r+ r r r) r r r r, >