Skip to main content

DoubleLeft skeleton generator

Project description

# dl-skel

dl-skel.py provides skeleton generator for you to avoid creating a
project from zero everytime.

Its useful to bootstrap general projects, like HTMLBootstrap, PythonPackage,
and others. It will download a GIT repository available on the net, and
process some files to change names and so on.

In the end, you will have a new folder, with `dlbuild.py` that can be used
to `runserver`, or `build` the project.

![dl-skel](docs/dlskel.png)

---

## Installation

Install it via pip (`pip install dl-skel`), or manually:

```
$ git clone git@github.com:doubleleft/dl-skel.git
$ cd dl-skel
$ python setup.py install
```

This will create a `dl-skel.py` bin in your path (virtualenv or systemwide)

## CLI Usage

Usage via CLI app called `dl-skel.py`

```
Usage: dl-skel.py [options]

Options:
-h, --help show this help message and exit
--skeleton-config=SKELCONFIG
dlskel Config file. Default is ~/.dl-skel/config.json
--skeleton-path=SKELPATH
Use another Skeleton Search Path. Default is ~/.dl-skel/

-l, --list List skeletons

Import new Template:
-i <GIT_REPO> <TEMPLATE_NAME>, --import=<GIT_REPO> <TEMPLATE_NAME>
import a new template from the given GIT
repository.

Create a new project:
-c <TEMPLATE_NAME> <OUTPUT>, --create=<TEMPLATE_NAME> <OUTPUT>
Create a new <project> skeleton
```

## Default Skeletons

You can check all available skeletons using `-l`:

```
$ dl-skel.py -l
wordpress5 https://github.com/doubleleft/skeleton-wordpress Wordpress 5.0
```

Template | URL
--- | ---
wordpress5 | [skeleton-wordpress](https://github.com/doubleleft/skeleton-wordpress)
HTMLRichApp | [skeleton-htmlrichapp](https://github.com/doubleleft/skeleton-htmlrichapp)
HTMLSimleApp | [skeleton-wordpress](https://github.com/doubleleft/skeleton-wordpress)

## Create a new project

To create a new project using a base skeleton, try option `-c`

```
$ dl-skel.py -c python ../my-shiny-project
Cloning python(https://github.com/ionelmc/projectskel) into ../my-shiny-project
```

## Importing your own skeletons

To import your own skeletons, use `-i`

```
$ dl-skel.py -i <REPO_URL> <SKELETON_NAME>
```

This will import `<REPO_URL>` and save it as `<SKELETON_NAME>`.
You can now create new projects using `<SKELETON_NAME>`

```
$ dl-skel.py -c <SKEL_NAME> name-of-my-project
```

# Creating my own skeletons

Skeletons are simple **GIT** repositories, with a special recipe stored in the
file `dlbuild`. This recipe tells what to substitute, download, install,
pretty much by hand.

You MUST create the following functions in the `dlbuild.py` file:

setup (Download and replace files)
build (Build project)

while others functions, like `runserver` are optional.

To see a simple example of a skeleton, check [skeleton-wordpress](https://github.com/doubleleft/skeleton-wordpress/blob/master/dlbuild.py)

# Using it inside python

You can use it direcly as an API in python

```
$ python

>>> from dlskel.skel import skeleton_create, make_password
>>> skeleton_create( 'git@github.com:doubleleft/skeleton-wordpress.git',
'my-wp-project',
skel_vars={
'DB_NAME': 'myproj',
'DB_USER': 'myuser',
'DB_PASSWORD': make_password(length=8) })
```

---
### TODO

- ✓ Add better file substituion via jinja2 template
- ✓ Add simple API for using it inside python
- ✓ Finish setup.py and make it pip installable

- ✓ Delete repository .git when creating a new project.
- Add dependencies check and installation (if necessary)

- ** Create Skeletons **
* ✓ Wordpress Skeleton
* Laravel Skeleton
* ✓ Python Package Skeleton
* Python Flask Skeleton
* HTML Bootstrap Skeleton
* HTML Static Skeleton

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dl-skel-0.1.2.tar.gz (111.6 kB view details)

Uploaded Source

File details

Details for the file dl-skel-0.1.2.tar.gz.

File metadata

  • Download URL: dl-skel-0.1.2.tar.gz
  • Upload date:
  • Size: 111.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dl-skel-0.1.2.tar.gz
Algorithm Hash digest
SHA256 eec7c10afe6db0343321e5d1890c26931004ffe789b0c16fb6f00bb137ae8013
MD5 2b7610511074e2a89639d79cf3acb436
BLAKE2b-256 c10642a9423bbaf3e356a8eae4ed659e948ba83c45f144e88069815078f44906

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page