OSMBrasil/paicemana

Linha de comando

alexandre-mbm opened this issue · 2 comments

Aperfeiçoamento de #6.

Não quer dizer que implementarei tudo, mas a partir de hoje eu começarei a pensá-lo assim:

  • paicemana -h/--help para mostrar a ajuda
  • paicemanaweeklyosm[ ARCHIVE [-g|-p] [-s] [[-n NUMBER]|[-f FILENAME]] [-b] [-d] ]
    • -g/--get para baixar texto gerando o arquivo Markdown (padrão)
    • -p/--put para enviar texto HTML
    • -s/--sync fazendo sincronização do idioma de tradução
    • -n/--number INTEGER habilitando renomear para DDD-semanario.md
    • -f/--filename FILENAME habilitando renomear para FILENAME
    • -b/--backups realizando backups
    • -d/--diff parando para confirmações através de diff, ou comparar atual
  • paicemanaosmf[ ARCHIVE [-g|-p] [-s] [-f FILENAME] [-b] [-d] ]
    • -g/--get para baixar texto gerando o arquivo Markdown (padrão)
    • -p/--put para enviar texto HTML
    • -s/--sync fazendo sincronização do idioma de tradução
    • -f/--filename FILENAME habilitando renomear para FILENAME
    • -b/--backups realizando backups
    • -d/--diff parando para confirmações através de diff, ou comparar atual
  • paicemanagithub-weeklyosm[ ARCHIVE [ -m|-p M|-i M|-n A|-c|-d|-p [-s]|-k M [-u U] ] ]
    • -m/--milestones para ver informação dos milestones existentes no repositório
    • -p/--populate MILESTONE para popular milestone, criando-o se necessário
    • -s/--simple para popular com estrutura simples de issues
    • -i/--issues [MILESTONE] para abrir página de issues [de milestone] no navegador
    • -n/--open ARCHIVE para abrir o arquivo no navegador (HTML do GitHub)
    • -c/--commits para abrir página de commits no navegador
    • -d/--diff para abrir página de diff no navegador
    • -p/--project para abrir página inicial do projeto no navegador (padrão)
    • -k/--kanban [MILESTONE] [-u/--user USER] para abrir kanban no waffle.io ‒ tuples?
  • paicemanagithub-osmf[ ARCHIVE [ -m|-p M|-i M|-n A|-c|-d|-p [-s]|-k M [-u U] ] ]
    • -m/--milestones para ver informação dos milestones existentes no repositório
    • -p/--populate MILESTONE para popular milestone, criando-o se necessário
    • -s/--simple para popular com estrutura simples de issues
    • -i/--issues [MILESTONE] para abrir página de issues [de milestone] no navegador
    • -n/--open ARCHIVE para abrir o arquivo no navegador (HTML do GitHub)
    • -c/--commits para abrir página de commits no navegador
    • -d/--diff para abrir página de diff no navegador
    • -p/--project para abrir página inicial do projeto no navegador (padrão)
    • -k/--kanban [MILESTONE] [-u/--user USER] para abrir kanban no waffle.io ‒ tuples?
  • paicemanaosmbrasil[FILENAME] ‒ atualizar códigos em site Jekyll
  • paicemanaetherpadHASH FILENAME_PATTERN ‒ realizar backups (ver #12)

Fazer esses "comandos", como se fossem namespaces, é o mais indicado para o click do que usar um conjunto muito grande de subconjuntos de opções mutuamente exclusivos.

Talvez esta issue fique aberta para sempre (se algo não for ser implementado). O objetivo aqui é principalmente reunir a ideia do projeto, algo como registrar muito simplificadamente um levantamento de requisitos sem julgá-lo quanto à importância.

Interessa tentar prever como poderá ser um arquivo de configurações ~/.paicemana:

[WeeklyOSM]:
Translators = alexandre-mbm jgpacker vgeorge
User = alexandre
Password = SENHA
Url = weeklyosm.eu
GitHub = OSMBrasil/semanario
Filename = %s-semanario.md
Backups = True
Diff = True
AutoLogin = True
Method = simple
OSMBrasil.Include = _includes/weeklyosm.md
OSMBrasil.Feed = weeklyosm.xml

[OSMF]:
Translators = alexandre-mbm wille
User = alexandre
Password = SENHA
Url = blog.openstreetmap.org
GitHub = OSMBrasil/osmf-blog
Backups = True
Diff = True
AutoLogin = True
Method = none
OSMBrasil.Include = _includes/osmf.md
OSMBrasil.Feed = osmf.xml

[GitHub]:
User = alexandre
Password = SENHA
AutoLogin = False

[Etherpad]:
Url = pad-osmbrasil.rhcloud.com
Backups = etherpad txt

Cuidado! Senhas estarão em texto plano no sistema de arquivos. Você pode pelo menos dificultar o acesso a elas alterando as permissões do arquivo: sudo chmod 600 ~/.paicemana

A segurança poderá ser revista levando-se em consideração chave SSH ou caching de senha.

Um pessoa do projeto click me instruiu a usar estratégia de subcomandos. Começando a ensaiá-la:

paicemana weeklyosm get                         ARCHIVE as NUMBER|FILENAME
                        --sync
                        --backup / --no-backup
                        --diff / --no-diff


paicemana weeklyosm put ARCHIVE


paicemana weeklyosm github
                           --info

                           populate MILESTONE [--simple]
                           open [ARCHIVE]
                                           --page [issues|commits|diff]
                                           --milestone INTEGER


paicemana weeklyosm kanban [MILESTONE] [--user USER]

paicemana weeklyosm osmbrasil


paicemana osmbrasil

paicemana etherpad HASH FILENAME_PATTERN