From 02a5d61bf2eede023661623eabe674b721012c16 Mon Sep 17 00:00:00 2001 From: TuhinBar Date: Tue, 17 Dec 2024 14:22:32 +0530 Subject: [PATCH] feat: add MongoDB configuration and update version to 1.1.0 --- README.md | 64 +++++++++++++++++++--------------- docs/images/optical-logo.png | Bin 0 -> 28256 bytes lib/generator/generator.go | 1 + lib/templates/config.env.tmpl | 1 + lib/templates/go.mod.tmpl | 2 +- main.go | 2 +- 6 files changed, 39 insertions(+), 31 deletions(-) create mode 100644 docs/images/optical-logo.png create mode 100644 lib/templates/config.env.tmpl diff --git a/README.md b/README.md index 1374afc..6412004 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + - + Optical is a CLI tool that generates a Go [Fiber](https://github.com/gofiber/fiber) project template. It is inspired by [express-generator](https://expressjs.com/en/starter/generator.html), a tool that produces a Node.js project template for the Express.js framework. It is named Optical because it works with Fiber and combines 'fiber-optic'. Silly. @@ -34,7 +34,6 @@ It is named Optical because it works with Fiber and combines 'fiber-optic'. Sill If you do not have Go installed on your device, you are required to install it to run this tool. - You can install Optical CLI using Go: ```bash @@ -58,29 +57,32 @@ optical -create ```bash Optical CLI version 1.0.0 -┃ What is the name of your project?(e.g 'my-fiber-api','./') -┃ A new folder with this name will be created. -┃ > - - Enter your GitHub username. - This is required to create the go.mod file - > - - Do you have air installed? - Air is required for auto-reload - Yes - > No - +┃ What is the name of your project?(e.g 'my-fiber-api','./') +┃ A new folder with this name will be created. +┃ > + + Enter your GitHub username. + This is required to create the go.mod file + > + + Do you have air installed? + Air is required for auto-reload + Yes + > No + enter next ``` + or To get help and see all the flags: + ```bash optical -h ``` After creating the project run this: + ```bash cd go mod tidy @@ -88,6 +90,7 @@ air ``` It will run your Fiber App and the output should look like this: +

@@ -99,28 +102,31 @@ To set up your project further, refer to the [Fiber Official Docs](https://docs. ## 🔷 Example If you run a command like: + ```bash optical -create ``` + ```bash Optical CLI version 1.0.0 -┃ What is the name of your project?(e.g 'my-fiber-api','./') -┃ A new folder with this name will be created. -┃ > cyber-fiber - - Enter your GitHub username. - This is required to create the go.mod file - > tuhinexe - - Do you have air installed ? - Air is required for auto-reload - Yes - > No - +┃ What is the name of your project?(e.g 'my-fiber-api','./') +┃ A new folder with this name will be created. +┃ > cyber-fiber + + Enter your GitHub username. + This is required to create the go.mod file + > tuhinexe + + Do you have air installed ? + Air is required for auto-reload + Yes + > No + enter next ``` It will create a new Optical project in a directory named `cyber-fiber` with `go.mod` like this : + ```bash module github.com/tuhinexe/cyber-fiber diff --git a/docs/images/optical-logo.png b/docs/images/optical-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..963ea0875300d2d76910f461153c542275b6e52b GIT binary patch literal 28256 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