Skip to content
This repository has been archived by the owner on Dec 22, 2021. It is now read-only.
/ shubcogen Public archive

This project aims to be a skeleton for course projects deployed on GitHub ๐Ÿ’€

License

Notifications You must be signed in to change notification settings

filipe1309/shubcogen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

WIP | ShubcoGenโ„ข ๐Ÿ’€

ShellScript


๐Ÿ’ฌ About

Skeleton GitHub Course Generator.

This project aims to be a skeleton generator for course projects deployed on GitHub.

Components that are generated:

  • README.md
  • notes.md
  • Deploy script (optional) with auto create tag, auto commit to notes.md files & deploy on GitHub
  • Self-Update script
  • Docker scripts & images (optional)

๐Ÿ’ป Technologies

๐Ÿ“œ Requirements

๐Ÿ•น Usage

1. Create you project in GitHub

2. Get basic files

In you project directory, run:

curl https://raw.githubusercontent.com/filipe1309/shubcogen/main/.shub/bin/get.sh | sh

3. Generating the skeleton to your project

After running the script from step 2, you'll be prompted to choose the configs of your project. Don't worry, you can always change the configs later at shub-config.json.

โš  Important: You'll be prompt to enter a couse type (class, episode, etc), and after that to initialize a new branch base on the course type. If you choose so, you'll be able to use the deploy script, and automate tag creation, commit to notes.md files and deploy on GitHub (see the section below).

4. Deploying into GitHub (optional)

You can deploy using the shub-deploy.sh script. This script auto-increments the version number of the branch and creates a new tag from branch name.

So you must be in a branch with a number at the end, like my-branch-1 or my-branch-1.1.

For example, if your actual branch is my-branch-1.1, after running this script, the steps below will be performed:

  1. A new tag my-branch-1.1-some-description will be created
  2. The actual branch will be automatically merged into main
  3. The main branch will be sent to GitHub with the new tag (with git push && git push --tags)
  4. A new branch my-branch-1.2 will be created
  5. notes.md will be update with the new "version number"
./shub-deploy.sh

๐Ÿ“Œ Roadmap

  • Add sementic versioning
  • Add versioning into templates file
  • Add as a global npm package & php package
  • Backup existing files
  • Improve gitignore files (get from https://github.com/github/gitignore)
  • Add badges generation
  • Add color deploy script
  • Improve project setup bin/generate.sh (with 2 types: Class or Episode, or another type set by user)
  • Add an visual interface to create the README.md & setup project configs
  • Simplify deploy script
  • Add an option to append an extra script to deploy.sh (like a changelog.sh)
  • Save deploy state (if an error occurs)
  • Add tests (with Bat)

:octocat: Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Push from your terminal to active auto-versioning & auto-tagging (from pre-push git hook).

Push with deploy.sh script.

๐Ÿ’ฟ Installation

git clone https://github.com/filipe1309/shubcogen.git
cd shubcogen
cp bin/pre-push .git/hooks/pre-push

โœ… Tests

./test/bats/bin/bats test/test.bats

License

MIT

About Me


Done with โ™ฅ by Filipe Leuch Bonfim ๐Ÿ––

About

This project aims to be a skeleton for course projects deployed on GitHub ๐Ÿ’€

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published