From dd01db13f4dc0f79755cc5928813ea8a95dad201 Mon Sep 17 00:00:00 2001
From: JeremyWuuuuu <591449570@qq.com>
Date: Wed, 22 Jul 2020 21:15:18 +0800
Subject: [PATCH] feat/template-generator - Add `gc.sh` as template generator -
Add `gc` as npm script to generate boilerplate
---
package.json | 3 ++-
scripts/gc.sh | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 1 deletion(-)
create mode 100755 scripts/gc.sh
diff --git a/package.json b/package.json
index 1545cfecf0..af442fd1a7 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,8 @@
"scripts": {
"dev": "vite",
"build": "vite build",
- "cz": "npx git-cz"
+ "cz": "npx git-cz",
+ "gc": "sh ./scripts/gc.sh"
},
"dependencies": {
"vue": "^3.0.0-rc.1",
diff --git a/scripts/gc.sh b/scripts/gc.sh
new file mode 100755
index 0000000000..5770450f74
--- /dev/null
+++ b/scripts/gc.sh
@@ -0,0 +1,65 @@
+#! /bin/bash
+
+export NAME=$1
+
+export FILE_PATH=$(cd "$(dirname "${BASH_SOURCE[0]}")/../packages" && pwd)
+
+re="[[:space:]]+"
+
+if [ "$#" -ne 1 ] || [[ $NAME =~ $re ]] || [ "$NAME" == "" ]; then
+ echo "Usage: yarn gc \${name} with no space"
+ exit 1
+fi
+
+DIRNAME="$FILE_PATH/$NAME"
+
+if [ -d "$DIRNAME" ]; then
+ echo "$NAME component already exists, please change it"
+ exit 1
+fi
+NORMALIZED_NAME=""
+for i in $(echo $NAME | sed 's/[_|-]\([a-z]\)/\ \1/;s/^\([a-z]\)/\ \1/'); do
+ C=$(echo "${i:0:1}" | tr "[:lower:]" "[:upper:]")
+ NORMALIZED_NAME="$NORMALIZED_NAME${C}${i:1}"
+done
+NAME=$NORMALIZED_NAME
+
+TEMPLATE_INDEX_VUE="\n
+ \n
+
\n
+\n
+\n
+\n
+"
+
+TEMPLATE_INDEX_TS="\n
+import { App } from 'vue'\n
+import ${NAME} from './src/index.vue'\n
+export default (app: App) => {\n
+ app.component(${NAME}.name, ${NAME})\n
+}
+"
+TEMPLATE_PKG_JSON="\n
+{\n
+ \"name\": \"eleplus-${NAME}\",\n
+ \"description\": \"\",\n
+ \"version\": \"0.1.0\",\n
+ \"main\": \"./index.ts\",\n
+ \"license\": \"MIT\",\n
+ \"dependencies\": {}\n
+}\n
+"
+
+mkdir -p "$DIRNAME"
+mkdir -p "$DIRNAME/src"
+echo $TEMPLATE_INDEX_VUE >>"$DIRNAME/src/index.vue"
+echo $TEMPLATE_INDEX_TS >>"$DIRNAME/index.ts"
+echo $TEMPLATE_PKG_JSON >>"$DIRNAME/package.json"