Skip to content

Commit 1a5e483

Browse files
authored
chore: migrate new_module script (#96)
Closes coder/internal#611 This scripts creates a new sample moduledir with required files Run it like : ./scripts/new_module.sh my-namespace/my-module
1 parent 1355ea4 commit 1a5e483

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

scripts/new_module.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env bash
2+
3+
# This scripts creates a new sample moduledir with required files
4+
# Run it like : ./scripts/new_module.sh my-namespace/my-module
5+
6+
MODULE_ARG=$1
7+
8+
# Check if they are in the root directory
9+
if [ ! -d "registry" ]; then
10+
echo "Please run this script from the root directory of the repository"
11+
echo "Usage: ./scripts/new_module.sh <namespace>/<module_name>"
12+
exit 1
13+
fi
14+
15+
# check if module name is in the format <namespace>/<module_name>
16+
if ! [[ "$MODULE_ARG" =~ ^[a-z0-9_-]+/[a-z0-9_-]+$ ]]; then
17+
echo "Module name must be in the format <namespace>/<module_name>"
18+
echo "Usage: ./scripts/new_module.sh <namespace>/<module_name>"
19+
exit 1
20+
fi
21+
22+
# Extract the namespace and module name
23+
NAMESPACE=$(echo "$MODULE_ARG" | cut -d'/' -f1)
24+
MODULE_NAME=$(echo "$MODULE_ARG" | cut -d'/' -f2)
25+
26+
# Check if the module already exists
27+
if [ -d "registry/$NAMESPACE/modules/$MODULE_NAME" ]; then
28+
echo "Module at registry/$NAMESPACE/modules/$MODULE_NAME already exists"
29+
echo "Please choose a different name"
30+
exit 1
31+
fi
32+
mkdir -p "registry/${NAMESPACE}/modules/${MODULE_NAME}"
33+
34+
# Copy required files from the example module
35+
cp -r examples/modules/* "registry/${NAMESPACE}/modules/${MODULE_NAME}/"
36+
37+
# Change to module directory
38+
cd "registry/${NAMESPACE}/modules/${MODULE_NAME}"
39+
40+
# Detect OS
41+
if [[ "$OSTYPE" == "darwin"* ]]; then
42+
# macOS
43+
sed -i '' "s/MODULE_NAME/${MODULE_NAME}/g" main.tf
44+
sed -i '' "s/MODULE_NAME/${MODULE_NAME}/g" README.md
45+
else
46+
# Linux
47+
sed -i "s/MODULE_NAME/${MODULE_NAME}/g" main.tf
48+
sed -i "s/MODULE_NAME/${MODULE_NAME}/g" README.md
49+
fi
50+
51+
# Make run.sh executable
52+
chmod +x run.sh

0 commit comments

Comments
 (0)