UNPKG

6.14 kBMarkdownView Raw
1# 🥒 Cucumber
2
3We created this small project to save time when working on web servers hosted on Heroku.
4
5We're big fans of the [Heroku Button](https://devcenter.heroku.com/articles/heroku-button). Thanks to the `app.json` file, we're able to create projects anyone can deploy, along with detailed instructions on how to set up all environment variables.
6
7Locally, since projects sometimes end up with dozens of environment variables, we use [foreman](https://www.npmjs.com/package/foreman) to load the local environment variables from the `.env` file. But we are still stuck with the problem of manually create the `.env` file every time we pull the project in a clean location.
8
9To speed up the initial setup process, we created this tiny app to automatically generate the `.env` file from the `app.json` file. At the same time, we ensured that the file wouldn't exceed the 80-character ruler mark.
10
11In addition, if your `app.json` file uses default values, Cucumber automatically populates the variables with the right set of auto-generated data. Anything else requires that you manually add the information.
12
13# How to install
14
15```
16] sudo npm install -g @0x4447/cucumber
17```
18
19# How to use
20
21```
22] cucumber -s PATH_TO_FOLDER
23```
24
25# Where to get help
26
27```
28] cucumber -h
29```
30
31# What to expect
32
33This is a sample `app.json` file that you could include in your project:
34
35```
36{
37 "name": "env-auto",
38 "description": "convert app.json in to .env",
39 "repository": "https://github.com",
40 "keywords": ["node", "npm"],
41 "success_url": "/",
42 "env": {
43 "NODE_ENV": {
44 "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."
45 },
46 "NPM_CONFIG_PRODUCTION": {
47 "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.",
48 "value": "true"
49 },
50 "API_KEY": {
51 "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.",
52 "generator": "secret"
53 }
54 }
55}
56```
57Here's your result:
58
59```
60# Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque rhoncus
61# sagittis urna pharetra varius. Maecenas mollis ac felis vitae blandit.
62# Integer eu risus vehicula, pellentesque leo vel, imperdiet diam. Quisque
63# ligula libero, aliquam ut lectus a, eleifend congue justo. Donec porttitor
64# ultricies sem nec euismod. Fusce venenatis iaculis dapibus. Duis fringilla
65# purus non erat lacinia tempus.
66NODE_ENV=
67
68# In volutpat ex ac metus efficitur tincidunt. Fusce tempus tempus neque, id
69# pharetra tortor vehicula ut. Donec gravida dolor ut purus dictum, sed egestas
70# lectus bibendum. Vestibulum et augue ac arcu dapibus tincidunt. Curabitur a
71# neque pharetra, egestas enim id, auctor mi. Suspendisse blandit facilisis
72# arcu in tempus. Integer ut metus non est aliquam scelerisque. Nunc dolor
73# odio, elementum eu rhoncus nec, tincidunt ac velit. Suspendisse aliquam
74# vestibulum diam non consequat. Phasellus aliquet neque in tellus iaculis
75# iaculis. Pellentesque vitae massa lacus. In id erat et est vestibulum mollis.
76# Vivamus scelerisque placerat urna nec ultrices. Nunc ac dictum tellus.
77NPM_CONFIG_PRODUCTION=true
78
79# Quisque justo odio, pretium a ante ac, mattis pharetra lectus. Cras erat
80# velit, tincidunt sit amet est aliquet, pellentesque commodo massa. Duis
81# ultrices purus dui, nec consectetur odio pellentesque sed. Etiam ipsum ex,
82# euismod accumsan velit vitae, varius commodo arcu. Aliquam malesuada commodo
83# lorem in tempor. Nam ut dui purus. Phasellus ornare maximus magna ac
84# sollicitudin. Sed nec felis nibh. Nullam maximus pharetra dui, quis sodales
85# est pretium nec.
86API_KEY=5db712b385afeacaa1ab2bcaba271483
87```
88As you can see, the description is nicely formatted, the variables with default values are filled automatically, and the rest is up to you.
89
90# The End
91
92If you enjoyed this project, please consider giving it a 🌟. And check out our [0x4447 GitHub account](https://github.com/0x4447), which contains additional resources you might find useful or interesting.
93
94## Sponsor 🎊
95
96This project is brought to you by 0x4447 LLC, a software company specializing in building custom solutions on top of AWS. Follow this link to learn more: https://0x4447.com. Alternatively, send an email to [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.).