Skip to content
This repository was archived by the owner on May 13, 2020. It is now read-only.
This repository was archived by the owner on May 13, 2020. It is now read-only.

Add a command to initialize a directory from a project template #71

@mfelsche

Description

@mfelsche

We currently have some kind of template for setting up a new project: https://github.com/ponylang/library-project-starter but setting this up is a tiny bit cumbersome as one has to replace all variables defined therein somehow manually or with a custom sed script or the like.

My suggestion is somehow inspired by giter8 and sbt which exist in the scala world. With these tools it is possible to define a template as a github repository containing variable placeholders (and default values for some or all of these). And then just call sbt new <github-org>/<repo> to populate a directory with all the boilerplate for some kind of setup. There can be any kind of templates for different setups and different tastes. Creating them is actually super-easy.

It would be very awesome to have something similar for ponylang. This entails the following moving parts:

  • a very simple templating engine (just replacing variables in files from a given set of values in a Map)
  • a new stable subcommand (new would be my suggestion) that uses the template repository to template-replace all files into a given location
    • this should ask for values for every found variable in the template first before actually replacing them, or ask for input for them on hitting them in the process
  • maybe this should honour a special file containing default values (e.g. .stable-new-defaults.ini)
  • rework the https://github.com/ponylang/library-project-starter to be compatible with this setup

Any thoughts on this?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions