1 | # 🥒 Cucumber
|
2 |
|
3 | This is a very simple and small project that we created to save some time when working on web servers hosted on Heroku.
|
4 |
|
5 | We are big fans of the [Heroku Button](https://devcenter.heroku.com/articles/heroku-button). It allows us to create a project that's deployable by anyone, with detailed instructions on how to set up all of the environment variables, thanks to the `app.json` file.
|
6 |
|
7 | Locally, we use [foreman](https://www.npmjs.com/package/foreman) to load the local environment variables from the `.env` file, and since projects can sometimes end up with lots of env variables.
|
8 |
|
9 | We created this tiny app to automatically generate the `.env` file while making sure the file won't exceed the 80 char ruler mark.
|
10 |
|
11 | If your `app.json` file has set default values, Cucumber will automatically populate the variables. Anything else will require your action to fill in the data.
|
12 |
|
13 | # How to Install
|
14 |
|
15 | ```
|
16 | ] sudo npm install -g @0x4447/cucumber
|
17 | ```
|
18 |
|
19 | # How to Use
|
20 |
|
21 | ```
|
22 | ] cucumber
|
23 | ```
|
24 |
|
25 | # What to Expect
|
26 |
|
27 | This is an example `app.json` file that you might have in your project.
|
28 |
|
29 | ```
|
30 | {
|
31 | "name": "env-auto",
|
32 | "description": "convert app.json in to .env",
|
33 | "repository": "https://github.com",
|
34 | "keywords": ["node", "npm"],
|
35 | "success_url": "/",
|
36 | "env": {
|
37 | "NODE_ENV": {
|
38 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque rhoncus sagittis urna pharetra varius. Maecenas mollis ac felis vitae blandit. Integer eu risus vehicula, pellentesque leo vel, imperdiet diam. Quisque ligula libero, aliquam ut lectus a, eleifend congue justo. Donec porttitor ultricies sem nec euismod. Fusce venenatis iaculis dapibus. Duis fringilla purus non erat lacinia tempus."
|
39 | },
|
40 | "NPM_CONFIG_PRODUCTION": {
|
41 | "description": "In volutpat ex ac metus efficitur tincidunt. Fusce tempus tempus neque, id pharetra tortor vehicula ut. Donec gravida dolor ut purus dictum, sed egestas lectus bibendum. Vestibulum et augue ac arcu dapibus tincidunt. Curabitur a neque pharetra, egestas enim id, auctor mi. Suspendisse blandit facilisis arcu in tempus. Integer ut metus non est aliquam scelerisque. Nunc dolor odio, elementum eu rhoncus nec, tincidunt ac velit. Suspendisse aliquam vestibulum diam non consequat. Phasellus aliquet neque in tellus iaculis iaculis. Pellentesque vitae massa lacus. In id erat et est vestibulum mollis. Vivamus scelerisque placerat urna nec ultrices. Nunc ac dictum tellus.",
|
42 | "value": "true"
|
43 | },
|
44 | "API_KEY": {
|
45 | "description": "Quisque justo odio, pretium a ante ac, mattis pharetra lectus. Cras erat velit, tincidunt sit amet est aliquet, pellentesque commodo massa. Duis ultrices purus dui, nec consectetur odio pellentesque sed. Etiam ipsum ex, euismod accumsan velit vitae, varius commodo arcu. Aliquam malesuada commodo lorem in tempor. Nam ut dui purus. Phasellus ornare maximus magna ac sollicitudin. Sed nec felis nibh. Nullam maximus pharetra dui, quis sodales est pretium nec.",
|
46 | "generator": "secret"
|
47 | }
|
48 | }
|
49 | }
|
50 | ```
|
51 | This is the output that you will get.
|
52 |
|
53 | ```
|
54 | # Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque rhoncus
|
55 | # sagittis urna pharetra varius. Maecenas mollis ac felis vitae blandit.
|
56 | # Integer eu risus vehicula, pellentesque leo vel, imperdiet diam. Quisque
|
57 | # ligula libero, aliquam ut lectus a, eleifend congue justo. Donec porttitor
|
58 | # ultricies sem nec euismod. Fusce venenatis iaculis dapibus. Duis fringilla
|
59 | # purus non erat lacinia tempus.
|
60 | NODE_ENV=
|
61 |
|
62 | # In volutpat ex ac metus efficitur tincidunt. Fusce tempus tempus neque, id
|
63 | # pharetra tortor vehicula ut. Donec gravida dolor ut purus dictum, sed egestas
|
64 | # lectus bibendum. Vestibulum et augue ac arcu dapibus tincidunt. Curabitur a
|
65 | # neque pharetra, egestas enim id, auctor mi. Suspendisse blandit facilisis
|
66 | # arcu in tempus. Integer ut metus non est aliquam scelerisque. Nunc dolor
|
67 | # odio, elementum eu rhoncus nec, tincidunt ac velit. Suspendisse aliquam
|
68 | # vestibulum diam non consequat. Phasellus aliquet neque in tellus iaculis
|
69 | # iaculis. Pellentesque vitae massa lacus. In id erat et est vestibulum mollis.
|
70 | # Vivamus scelerisque placerat urna nec ultrices. Nunc ac dictum tellus.
|
71 | NPM_CONFIG_PRODUCTION=true
|
72 |
|
73 | # Quisque justo odio, pretium a ante ac, mattis pharetra lectus. Cras erat
|
74 | # velit, tincidunt sit amet est aliquet, pellentesque commodo massa. Duis
|
75 | # ultrices purus dui, nec consectetur odio pellentesque sed. Etiam ipsum ex,
|
76 | # euismod accumsan velit vitae, varius commodo arcu. Aliquam malesuada commodo
|
77 | # lorem in tempor. Nam ut dui purus. Phasellus ornare maximus magna ac
|
78 | # sollicitudin. Sed nec felis nibh. Nullam maximus pharetra dui, quis sodales
|
79 | # est pretium nec.
|
80 | API_KEY=5db712b385afeacaa1ab2bcaba271483
|
81 | ```
|
82 | As you can see, the description will be nicely formatted, the variables with default values will be filled automatically, and the rest is up to you.
|
83 |
|
84 | # The End
|
85 |
|
86 | If you enjoyed this project, please consider giving it a 🌟. And check out our [0x4447 GitHub account](https://github.com/0x4447), where we have additional resources that you might find useful or interesting.
|
87 |
|
88 | # For Hire 👨💻 👩💻
|
89 |
|
90 | If you'd like us to help you with something, please feel free to say [hello@0x4447.email](mailto:hello@0x4447.email?Subject=Hello%20From%20Repo&Body=Hi%2C%0A%0AMy%20name%20is%20NAME%2C%20and%20I%27d%20like%20to%20get%20in%20touch%20with%20someone%20at%200x4447.%0A%0AI%27d%20like%20to%20discuss%20the%20following%20topics%3A%0A%0A-%20LIST_OF_TOPICS_TO_DISCUSS%0A%0ASome%20useful%20information%3A%0A%0A-%20My%20full%20name%20is%3A%20FIRST_NAME%20LAST_NAME%0A-%20My%20time%20zone%20is%3A%20TIME_ZONE%0A-%20My%20working%20hours%20are%20from%3A%20TIME%20till%20TIME%0A-%20My%20company%20name%20is%3A%20COMPANY%20NAME%0A-%20My%20company%20website%20is%3A%20https%3A%2F%2F%0A%0ABest%20regards.), and share what's on your mind. We'll take a look, and try our best to help you. Or visit our website at: [0x4447.com](https://0x4447.com).
|