mkfile
This commit is contained in:
49
mkfile.bat
Normal file
49
mkfile.bat
Normal file
@@ -0,0 +1,49 @@
|
||||
@echo off
|
||||
chcp 65001
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
:: 检查参数是否存在
|
||||
if "%~1"=="" (
|
||||
echo 用法: %~nx0 文件名(不带扩展名)
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
set "NAME=%~1"
|
||||
set "NAME_UPPER=%NAME:_=_%"
|
||||
set "NAME_UPPER=%NAME_UPPER:"=%"
|
||||
for %%A in (%NAME_UPPER%) do (
|
||||
set "NAME_UPPER=!NAME_UPPER:%%A=%%~A!"
|
||||
)
|
||||
set "NAME_UPPER=!NAME_UPPER:.=_!"
|
||||
|
||||
:: 创建目录结构
|
||||
mkdir include\solution 2>nul
|
||||
mkdir src 2>nul
|
||||
mkdir tests 2>nul
|
||||
|
||||
:: 生成 include/solution/a.h
|
||||
(
|
||||
echo #ifndef INC_!NAME_UPPER!_H
|
||||
echo #define INC_!NAME_UPPER!_H
|
||||
echo #ifdef __cplusplus
|
||||
echo extern "C" {
|
||||
echo #endif
|
||||
echo.
|
||||
echo #ifdef __cplusplus
|
||||
echo }
|
||||
echo #endif
|
||||
echo #endif
|
||||
) > include\solution\%NAME%.h
|
||||
|
||||
:: 生成 src/a.c
|
||||
(
|
||||
echo #include ^<solution/%NAME%.h^>
|
||||
) > src\%NAME%.c
|
||||
|
||||
:: 生成 tests/test_a.cpp
|
||||
(
|
||||
echo #include ^<gtest/gtest.h^>
|
||||
echo #include ^<solution/%NAME%.h^>
|
||||
) > tests\test_%NAME%.cpp
|
||||
|
||||
echo 文件创建完成。
|
||||
39
mkfile.sh
Normal file
39
mkfile.sh
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 检查参数
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "用法: $0 <文件名(不带扩展名)>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
filename="$1"
|
||||
upper_filename=$(echo "$filename" | tr '[:lower:]' '[:upper:]')
|
||||
|
||||
# 创建目录(如果不存在)
|
||||
mkdir -p ./include/solution ./src ./tests
|
||||
|
||||
# 创建 ./include/solution/a.h
|
||||
cat > ./include/solution/"$filename".h <<EOF
|
||||
#ifndef INC_${upper_filename}_H
|
||||
#define INC_${upper_filename}_H
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
|
||||
# 创建 ./src/a.c
|
||||
cat > ./src/"$filename".c <<EOF
|
||||
#include <solution/$filename.h>
|
||||
EOF
|
||||
|
||||
# 创建 ./tests/test_a.cpp
|
||||
cat > ./tests/test_"$filename".cpp <<EOF
|
||||
#include <gtest/gtest.h>
|
||||
#include <solution/$filename.h>
|
||||
EOF
|
||||
Reference in New Issue
Block a user