-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate-pattern.sh
More file actions
executable file
·33 lines (27 loc) · 1.02 KB
/
Copy pathgenerate-pattern.sh
File metadata and controls
executable file
·33 lines (27 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/bash
read -p 'Pattern name (kebab-case): ' kebab
read -p 'Pattern name (camelCase): ' camel
read -p 'Pattern name (PascalCase): ' pascal
read -p 'Pattern name (Human Friendly): ' hooman
export KEBAB=$kebab
export CAMEL=$camel
export PASCAL=$pascal
export HOOMAN=$hooman
if [ -d "src/patterns/$KEBAB" ]; then
echo Oops! Pattern $KEBAB exists!
exit 1
fi
mkdir "src/patterns/$KEBAB"
touch "src/patterns/$KEBAB/index.ts"
cp template.ts "src/patterns/$KEBAB/index.ts"
find "src/patterns/$KEBAB" -type f -exec sed -i '' "s/\${PATTERN}/$CAMEL/g" '{}' \;
echo "$CAMEL: {" >> src/components/helpModal.tsx
echo " title: '$HOOMAN'," >> src/components/helpModal.tsx
echo " instructions: []," >> src/components/helpModal.tsx
echo " description: []," >> src/components/helpModal.tsx
echo "}," >> src/components/helpModal.tsx
echo "import $PASCAL from 'patterns/$KEBAB'" >> src/index.tsx
echo "$CAMEL: {" >> src/index.tsx
echo " label: '$HOOMAN'," >> src/index.tsx
echo " component: $PASCAL," >> src/index.tsx
echo "}," >> src/index.tsx