Code Monkey home page Code Monkey logo

ritchie-templates's Introduction

The Ritchie CLI project has been archived by Zup Innovation. It might start again eventually; however, we won't deliver support for now.

Ritchie Templates

🇺🇸 How to add some language on Rit create formula

  • Create a folder on languages folder
  • The folders on language's folder will be presented to user on rit create formula
  • Inside the created folder you should have:
    • Makefile, this file should do:
      • create run.sh and run.bat, these files should explain how to run the formula, run.sh is called on linux and mac system and build.bat will be called on windows system
      • copy files that run.sh and run.bat needs to run
      • remember Makefile can be called inside a docker using the dockerImageBuilder as the docker image name
    • config.json, with this file rit can ask the inputs and use dockerImageBuilder to build the formula
    • /src folder, on this folder you can create a simple formula using the language that you will add.
    • Dockerfile, this file will be use when --docker is pass to the formula, the objective is to run the formula inside the docker, so in this file you need to create a dockerfile that can run any formula of this language

🇧🇷 Como adicionar uma nova linguagem ao rit create formula

Para adicionar uma nova linguagem ao rit create fórmula, você apenas precisa adicionar uma nova pasta no caminho templates/create_formula/languages. todos os nomes de pastas adicionadas nesse caminho serão listadas para o usuário quando ele executar rit create formula.

Dentro dessa pasta você deve adicionar:

  • /src (obrigatório)
  • Makefile (caso rode no linux)
  • build.bat (caso rode no windows)
  • config.json (obrigatório)
  • Dockerfile (caso rode com docker)
  • README.md (documentação github)
  • set_umask.sh (caso rode com docker)
  • metadata.json (documentação portal)

Vamos entender para que server cada componente:

Source

  • /src nessa pasta você vai colocar uma fórmula de exemplo na linguagem que você quer adicionar.

  • config.json nesse arquivo você deve adicionar os inputs da fórmula que está na pasta src. alem disso você pode adicionar o campo dockerImageBuilder que é a imagem que deve ser utiliza para fazer o build do seu código. Lembrando que esse campo é opcional, caso ele não exista o ritchie sempre vai fazer o build local.

Build Local

Todo build deve gerar uma pasta bin com no minimo os seguintes arquivos:

  • run.sh
  • run.bat

Esses arquivos são os arquivos de execução que serão executados ao chamar a fórmula, logo, esses arquivos devem saber como rodar o código.

  • Makefile é responsável por fazer o build do código em máquinas linux.
  • build.bat é responsável por fazer o build do código em máquinas windows.

Alem de gerar os arquivos de execução o build também deve copiar os arquivos necessários para a pasta bin para que os arquivos de execução consigam funcionar.

Build com Docker

Caso você adicione o campo dockerImageBuilder no config.json, o ritchie vai tentar fazer o build utilizando o docker. Com isso, ele vai rodar o arquivo Makefile dentro de um docker com a imagem do campo dockerImageBuilder. O build com docker deve gerar a mesma pasta bin que um build local, sendo que a grande vantagem do build com docker é que o usuário não precisar ter as ferramentas necessárias para o build instaladas na máquina.

Run com Docker

Caso você adicione o arquivo Dockerfile, o ritchie vai rodar o run.sh dentro de um docker. Para isso, ele vai utilizar os arquivos:

  • Dockerfile utilizaremos esse arquivo para fazer o build do docker que vai rodar o run.sh
  • set_umask.sh é o entrypoint do docker, normalmente esse arquivo utiliza o comando umask para que o volume dentro do docker tenha uma melhor compatibilidade.

Lembrando que devemos copiar esses arquivos para a pasta bin ao fazer o build.

Documentação

  • metadata.json arquivo utilizado pelo portal de fórmulas do ritchie para fazer a indexação.
  • README.md arquivo para explicar como utilizar a fórmula. Quando alguém abrir a pasta da sua fórmula pelo github, ele vai ver o conteúdo desse arquivo.

Pasta root

Quando o usuário cria uma fórmula pela primeira vez em um workspace, ele copia os arquivos da pasta root para o workspace do usuário, caso a linguagem tenha alguma regra nova de gitignore você pode adicionar essa regra no arquivo .gitignore da pasta root.

ritchie-templates's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ritchie-templates's Issues

[FEATURE] Add new formulas templates types

Related to this issue: ZupIT/ritchie-cli#1016

What would you like to be added:

  • Update the repository structure to be able to support different formulas templates.

Why is this needed:

  • Today, the templates repository only support hello-world templates, the idea would be to add new templates such as Empty, REST API consuming, Project Scaffolding and so on... in as many programming language as possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.