A project template manager created using Jinja2 in python to create new project and add new files to projects created with this
Copyright © 2023 Austin Choi
The project is currently not available on pip and can only be installed using the following steps
-
Clone the project
git clone https://github.com/chosauce/choicePackageManager -
Run the dependencies script to download all the necessary dependencies
Windows
As of now, not planning on making work for windows sorry :(
Linux (NOTE: Need to check if the script contains all necessary pip packages to install lol)
./dependencies
Mac (NOTE: Might need to test if the dependencies script works for mac)
sudo chmod u+x ./dependencies
./dependencies
- Run the build script to build the project
./build
Go to the directory where all of your jinja2 templates will be stored
chpm -s
chpm set
The repository will come with a sample template folder as a reference. You can use this template directory example as your primary template directory and change it how you wish.
NOTE: Template folders must be the name of the language you wish to make the project of. There must also be a newfile directory inside of the templates directory that has the templates of all the new files you can create for a language
Template directory structure
└── templates_directory
├── c
├── c#
├── c++
├── html
├── java
├── newfile
│ ├── README.md
│ ├── template.cpp
│ ├── template.h
│ ├── template.hpp
│ ├── template.html
│ ├── template.js
│ ├── templateMain.cpp
│ ├── template.py
│ ├── template.sh
│ └── template.ts
├── python
└── ...
If you would like to add more languages that aren't currently supported, you can modify the choice-project-manager/chpm/main.py script and add the languages to the LANGUAGES array and update the ALL_LANGUAGES array if it wasn't listed there initially.
chpm create
Flags
-n, --name- Project name-d, --desc- Project description-a, --auth- Project author
chpm newfile
Flags
-f, --newfile- New file name
chpm --help
- First working version
- Can create new projects with project config
- Can create new files with project config
- Implement git features
- Initialize repo
- Getting list of template directories from the root template directory
- Implemented dynamically getting template names from the template directory
- Initializing project even if it has already been made but not using the project manager
- Have the script read from script env file to get list of template folders and not rely on language names
- Need to use this to get the prompt for what template to use
- Fixed newfile so it properly gets the language information from the .project.env file
- Implement git features
- Initialize repo
- Add origin to remote repo
- Editing project config -[ ]applying changes across all files in the project
- Have project automatically add license in template
- Make it more user-friendly and usable by more people since this was originally made with myself in mind
- Create task management features
- Progress tracking
- Time tracking
- Potential collaboration features
- Can potentially be used to work with communication tools like slack, discord, etc
