Last active
April 20, 2023 20:38
-
-
Save Intelrunner/376f267499cfdd837be4305c0e3c7b35 to your computer and use it in GitHub Desktop.
This gist builds out a simple directory structure for a user facing app and grabs a general git ignore from gist
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# prompt user for monorepo name | |
read -p "Enter monorepo name: " monorepo_name | |
# check if monorepo directory already exists | |
if [ -d "$monorepo_name" ]; then | |
echo "Monorepo directory already exists. Skipping creation process." | |
else | |
# create the main directory | |
mkdir "$monorepo_name" | |
# create the packages directory | |
mkdir "$monorepo_name/packages" | |
# create the users package | |
mkdir "$monorepo_name/packages/users" | |
mkdir "$monorepo_name/packages/users/functions" | |
mkdir "$monorepo_name/packages/users/functions/createUser" | |
mkdir "$monorepo_name/packages/users/functions/getUser" | |
mkdir "$monorepo_name/packages/users/functions/updateUser" | |
mkdir "$monorepo_name/packages/users/functions/deleteUser" | |
mkdir "$monorepo_name/packages/users/services" | |
mkdir "$monorepo_name/packages/users/services/auth" | |
mkdir "$monorepo_name/packages/users/services/email" | |
mkdir "$monorepo_name/packages/users/tests" | |
touch "$monorepo_name/packages/users/package.json" | |
touch "$monorepo_name/packages/users/tsconfig.json" | |
# create the products package | |
mkdir "$monorepo_name/packages/products" | |
mkdir "$monorepo_name/packages/products/functions" | |
mkdir "$monorepo_name/packages/products/services" | |
mkdir "$monorepo_name/packages/products/tests" | |
touch "$monorepo_name/packages/products/package.json" | |
touch "$monorepo_name/packages/products/tsconfig.json" | |
# create the infra directory | |
mkdir "$monorepo_name/infra" | |
touch "$monorepo_name/infra/stack.yaml" | |
touch "$monorepo_name/infra/pipeline.yaml" | |
touch "$monorepo_name/infra/cdk.json" | |
# create the shared directory | |
mkdir "$monorepo_name/shared" | |
mkdir "$monorepo_name/shared/utils" | |
mkdir "$monorepo_name/shared/types" | |
mkdir "$monorepo_name/shared/errors" | |
mkdir "$monorepo_name/shared/middlewares" | |
# create the remaining files | |
touch "$monorepo_name/.gitignore" | |
touch "$monorepo_name/.eslintrc.json" | |
touch "$monorepo_name/package.json" | |
touch "$monorepo_name/tsconfig.json" | |
touch "$monorepo_name/README.md" | |
# download standard .gitignore | |
cd "$monorepo_name" | |
curl -L https://gist.github.com/Intelrunner/09cfb83041a62104bbde301cc63d460e/raw/.gitignore -o .gitignore | |
echo "Monorepo created successfully!" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment