Initial app

This commit is contained in:
Edward Loveall 2021-05-01 17:02:08 -04:00
commit fcf3eb14d0
No known key found for this signature in database
GPG key ID: A7606DFEC2BA731F
84 changed files with 8470 additions and 0 deletions

View file

@ -0,0 +1,67 @@
#!/usr/bin/env bash
# This file contains a set of functions used as helpers
# for various tasks. Read the examples for each one for
# more information. Feel free to put any additional helper
# functions you may need for your app
# Returns true if the command $1 is not found
# example:
# if command_not_found "yarn"; then
# echo "no yarn"
# fi
command_not_found() {
! command -v $1 > /dev/null
return $?
}
# Returns true if the command $1 is not running
# You must supply the full command to check as an argument
# example:
# if command_not_running "redis-cli ping"; then
# print_error "Redis is not running"
# fi
command_not_running() {
$1
if [ $? -ne 0 ]; then
true
else
false
fi
}
# Returns true if the OS is macOS
# example:
# if is_mac; then
# echo "do mac stuff"
# fi
is_mac() {
if [[ "$OSTYPE" == "darwin"* ]]; then
true
else
false
fi
}
# Returns true if the OS is linux based
# example:
# if is_linux; then
# echo "do linux stuff"
# fi
is_linux() {
if [[ "$OSTYPE" == "linux"* ]]; then
true
else
false
fi
}
# Prints error and exit.
# example:
# print_error "Redis is not running. Run it with some_command"
print_error() {
printf "${BOLD_RED_COLOR}There is a problem with your system setup:\n\n"
printf "${BOLD_RED_COLOR}$1 \n\n" | indent
exit 1
}

View file

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# This file contains a set of functions used to format text,
# and make printing text a little easier. Feel free to put
# any additional functions you need for formatting your shell
# output text.
# Colors
BOLD_RED_COLOR="\e[1m\e[31m"
# Indents the text 2 spaces
# example:
# printf "Hello" | indent
indent() {
while read LINE; do
echo " $LINE" || true
done
}
# Prints out an arrow to your custom notice
# example:
# notice "Installing new magic"
notice() {
printf "\n▸ $1\n"
}
# Prints out a check mark and Done.
# example:
# print_done
print_done() {
printf "✔ Done\n" | indent
}

45
script/setup Executable file
View file

@ -0,0 +1,45 @@
#!/usr/bin/env bash
# Exit if any subcommand fails
set -e
set -o pipefail
source script/helpers/text_helpers
notice "Running System Check"
./script/system_check
print_done
notice "Installing node dependencies"
yarn install --no-progress | indent
notice "Compiling assets"
yarn dev | indent
print_done
notice "Installing shards"
shards install | indent
if [ ! -f ".env" ]; then
notice "No .env found. Creating one."
touch .env
print_done
fi
notice "Creating the database"
lucky db.create | indent
notice "Verifying postgres connection"
lucky db.verify_connection | indent
notice "Migrating the database"
lucky db.migrate | indent
notice "Seeding the database with required and sample records"
lucky db.seed.required_data | indent
lucky db.seed.sample_data | indent
print_done
notice "Run 'lucky dev' to start the app"

42
script/system_check Executable file
View file

@ -0,0 +1,42 @@
#!/usr/bin/env bash
source script/helpers/text_helpers
source script/helpers/function_helpers
# Use this script to check the system for required tools and process that your app needs.
# A few helper functions are provided to make writing bash a little easier. See the
# script/helpers/function_helpers file for more examples.
#
# A few examples you might use here:
# * 'lucky db.verify_connection' to test postgres can be connected
# * Checking that elasticsearch, redis, or postgres is installed and/or booted
# * Note: Booting additional processes for things like mail, background jobs, etc...
# should go in your Procfile.dev.
if command_not_found "yarn"; then
print_error "Yarn is not installed\n See https://yarnpkg.com/lang/en/docs/install/ for install instructions."
fi
# Only if this isn't CI
if [ -z "$CI" ]; then
lucky ensure_process_runner_installed
fi
if command_not_found "createdb"; then
MSG="Please install the postgres CLI tools, then try again."
if is_mac; then
MSG="$MSG\nIf you're using Postgres.app, see https://postgresapp.com/documentation/cli-tools.html."
fi
MSG="$MSG\nSee https://www.postgresql.org/docs/current/tutorial-install.html for install instructions."
print_error "$MSG"
fi
## CUSTOM PRE-BOOT CHECKS ##
# example:
# if command_not_running "redis-cli ping"; then
# print_error "Redis is not running."
# fi