Browse Source

Exporta docs do zope como repo git

pull/1914/head
Marcio Mazza 7 years ago
parent
commit
0e8ff2e987
  1. 29
      sapl/legacy/scripts/exporta_zope/exporta_zope.py
  2. 2
      sapl/legacy/scripts/exporta_zope/requirements.txt

29
sapl/legacy/scripts/exporta_zope/exporta_zope.py

@ -12,10 +12,12 @@ from collections import defaultdict
from contextlib import contextmanager
from functools import partial
import git
import magic
import yaml
import ZODB.DB
import ZODB.FileStorage
from unipath import Path
from ZODB.broken import Broken
EXTENSOES = {
@ -270,7 +272,7 @@ def dump_usuarios(sapl, path):
save_as_yaml(path, 'usuarios.yaml', users)
def dump_sapl(data_fs_path, destino='../../../../media'):
def _dump_sapl(data_fs_path, destino='../../../../media'):
app, close_db = get_app(data_fs_path)
try:
sapl = find_sapl(app)
@ -288,9 +290,28 @@ def dump_sapl(data_fs_path, destino='../../../../media'):
close_db()
DIR_DADOS_MIGRACAO = Path('~/migracao_sapl/').expand()
def dump_sapl(sigla):
data_fs_path = DIR_DADOS_MIGRACAO.child('datafs',
'Data_cm_{}.fs'.format(sigla))
nome_banco_legado = 'sapl_cm_{}'.format(sigla)
destino = DIR_DADOS_MIGRACAO.child('repos', nome_banco_legado)
destino.mkdir(parents=True)
repo = git.Repo.init(destino)
assert not repo.index.diff(None) # o repo não tem mudanças pendentes
_dump_sapl(data_fs_path, destino)
# grava mundaças
repo.git.add(A=True)
if 'master' not in repo.heads or repo.index.diff('HEAD'):
# se de fato existe mudança
repo.index.commit('Exporta documentos do zope')
if __name__ == "__main__":
if len(sys.argv) == 2:
data_fs_path = sys.argv[1]
dump_sapl(data_fs_path)
sigla = sys.argv[1]
dump_sapl(sigla)
else:
print('Uso: python exporta_zope <caminho p Data.fs>')
print('Uso: python exporta_zope <sigla>')

2
sapl/legacy/scripts/exporta_zope/requirements.txt

@ -1,3 +1,5 @@
# ZODB version 3.7.4
PyYAML==3.12
ZODB==5.3.0
Unipath==1.1
GitPython==2.1.9

Loading…
Cancel
Save