2020-06-10 11:43:10 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# _ _ _ _____
|
|
|
|
# | | | | | | | ____|
|
|
|
|
# | |__| | __ _| | _| |__
|
|
|
|
# | __ |/ _` | |/ /___ \
|
|
|
|
# | | | | (_| | < ___) |
|
|
|
|
# |_| |_|\__,_|_|\_\____/
|
|
|
|
|
|
|
|
MODULE_NAME="NOTSPECIFIED"
|
|
|
|
MODULE_TITLE="NOTSPECIFIED"
|
|
|
|
MODULE_AUTHOR="NOTSPECIFIED"
|
|
|
|
MODULE_DESC="NOTSPECIFIED"
|
|
|
|
|
|
|
|
print_banner() {
|
|
|
|
echo " __ ___ ______ _ _____ _ _ "
|
|
|
|
echo " \ \ / (_) ____(_) | __ (_) | | "
|
|
|
|
echo " \ \ /\ / / _| |__ _ | |__) | _ __ ___ __ _ _ __ _ __ | | ___ "
|
|
|
|
echo " \ \/ \/ / | | __| | | | ___/ | '_ \ / _ \/ _\` | '_ \| '_ \| |/ _ \ "
|
|
|
|
echo " \ /\ / | | | | | | | | | | | | __/ (_| | |_) | |_) | | __/ "
|
|
|
|
echo " \/ \/ |_|_| |_| |_| |_|_| |_|\___|\__,_| .__/| .__/|_|\___| Mark 7"
|
|
|
|
echo " Module Creation Helper | | | | "
|
2021-05-10 16:31:17 +00:00
|
|
|
echo " Version 1.1 |_| |_| "
|
2020-06-10 11:43:10 +00:00
|
|
|
echo " "
|
|
|
|
echo " "
|
|
|
|
}
|
|
|
|
|
|
|
|
get_info() {
|
|
|
|
read -p "[*] Module Name: " MODULE_NAME
|
|
|
|
read -p "[*] Module Title: " MODULE_TITLE
|
|
|
|
read -p "[*] Module Author: " MODULE_AUTHOR
|
|
|
|
read -p "[*] Module Short Description: " MODULE_DESC
|
|
|
|
|
|
|
|
sanitize_info
|
|
|
|
}
|
|
|
|
|
|
|
|
sanitize_info() {
|
|
|
|
# Remove All Spaces from Module Name
|
|
|
|
MODULE_NAME=${MODULE_NAME// /}
|
|
|
|
}
|
|
|
|
|
2021-05-10 16:09:37 +00:00
|
|
|
create_from_template() {
|
|
|
|
if [[ ! -d "Misc/module-template" ]]; then
|
2020-06-10 11:43:10 +00:00
|
|
|
echo "[!!] The template module seems to be missing. Please re-clone this repository and try again."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "[*] Creating New Module ($MODULE_NAME)."
|
|
|
|
|
2021-05-10 16:09:37 +00:00
|
|
|
cp -r Misc/module-template $MODULE_NAME
|
2020-06-10 11:43:10 +00:00
|
|
|
|
|
|
|
grep -rl examplemodule $MODULE_NAME/ | xargs sed -i "s/examplemodule/$MODULE_NAME/g"
|
|
|
|
grep -rl example-module $MODULE_NAME/ | xargs sed -i "s/example-module/$MODULE_NAME/g"
|
|
|
|
grep -rl example-service $MODULE_NAME/ | xargs sed -i "s/example-service/$MODULE_NAME/g"
|
|
|
|
grep -rl ExampleModuleComponent $MODULE_NAME/ | xargs sed -i "s/ExampleModuleComponent/${MODULE_NAME}Component/g"
|
|
|
|
grep -rl ExampleServiceService $MODULE_NAME/ | xargs sed -i "s/ExampleServiceService/${MODULE_NAME}Service/g"
|
|
|
|
grep -rl ExampleModuleModule $MODULE_NAME/ | xargs sed -i "s/ExampleModuleModule/${MODULE_NAME}Module/g"
|
|
|
|
|
|
|
|
grep -rl "the Example Module!" $MODULE_NAME/ | xargs sed -i "s/the Example Module!/${MODULE_NAME}/g"
|
|
|
|
grep -rl ": \"Example Module" $MODULE_NAME/ | xargs sed -i "s/: \"Example Module/: \"${MODULE_TITLE}/g"
|
|
|
|
grep -rl "An example module!" $MODULE_NAME/ | xargs sed -i "s/An example module!/${MODULE_DESC}/g"
|
|
|
|
grep -rl ": \"Hak5" $MODULE_NAME/ | xargs sed -i "s/: \"Hak5/: \"${MODULE_AUTHOR}/g"
|
|
|
|
|
|
|
|
mv $MODULE_NAME/projects/examplemodule $MODULE_NAME/projects/$MODULE_NAME
|
|
|
|
mv $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/example-module.component.html $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/$MODULE_NAME.component.html
|
|
|
|
mv $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/example-module.component.css $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/$MODULE_NAME.component.css
|
|
|
|
mv $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/example-module.component.ts $MODULE_NAME/projects/$MODULE_NAME/src/lib/components/$MODULE_NAME.component.ts
|
|
|
|
mv $MODULE_NAME/projects/$MODULE_NAME/src/lib/services/example-service.service.ts $MODULE_NAME/projects/$MODULE_NAME/src/lib/services/$MODULE_NAME.service.ts
|
|
|
|
mv $MODULE_NAME/projects/$MODULE_NAME/src/lib/example-module.module.ts $MODULE_NAME/projects/$MODULE_NAME/src/lib/$MODULE_NAME.module.ts
|
|
|
|
}
|
|
|
|
|
|
|
|
ask_prepare_node() {
|
|
|
|
while true; do
|
|
|
|
read -p "[!] Would you like to prepare the Angular workspace? [Y/n] " yn
|
|
|
|
case $yn in
|
|
|
|
[Yy]* ) prepare_node; break;;
|
|
|
|
[Nn]* ) return;;
|
|
|
|
* ) prepare_node; break;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
prepare_node() {
|
|
|
|
echo "[*] Preparing the Angular workspace."
|
|
|
|
cd $MODULE_NAME
|
|
|
|
|
|
|
|
if ! command -v npm &> /dev/null; then
|
|
|
|
echo "[!] NPM does not appear to be installed on this system. Failed to create workspace."
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
npm install
|
|
|
|
echo "[*] Prepared the Angular workspace."
|
|
|
|
cd -
|
|
|
|
}
|
|
|
|
|
|
|
|
finish() {
|
|
|
|
echo "[*] A new module has been created! Exiting."
|
|
|
|
}
|
|
|
|
|
|
|
|
main() {
|
|
|
|
print_banner
|
|
|
|
get_info
|
2021-05-10 16:09:37 +00:00
|
|
|
create_from_template
|
2020-06-10 11:43:10 +00:00
|
|
|
ask_prepare_node
|
|
|
|
|
|
|
|
finish
|
|
|
|
}
|
|
|
|
|
|
|
|
main
|
|
|
|
|