new mkfile script
This commit is contained in:
49
mkfile.bat
49
mkfile.bat
@@ -1,49 +0,0 @@
|
|||||||
@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 文件创建完成。
|
|
||||||
41
mkfile.py
Normal file
41
mkfile.py
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import sys
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
if len(sys.argv) != 2:
|
||||||
|
print("Usage: mkfile.py <filename>")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
filename = sys.argv[1]
|
||||||
|
|
||||||
|
# create header file
|
||||||
|
with open(f"./include/solution/{filename.lower()}.h", "w") as f:
|
||||||
|
f.write("// This file is generated by mkfile.py\n")
|
||||||
|
f.write(f"// Date: {datetime.datetime.now().strftime('%Y-%m-%d')}\n\n")
|
||||||
|
f.write(f"#ifndef INC_{filename.upper()}_H\n")
|
||||||
|
f.write(f"#define INC_{filename.upper()}_H\n")
|
||||||
|
f.write("#ifdef __cplusplus\n")
|
||||||
|
f.write("extern \"C\"\n")
|
||||||
|
f.write("{\n")
|
||||||
|
f.write("#endif\n\n")
|
||||||
|
f.write("#ifdef __cplusplus\n")
|
||||||
|
f.write("}\n")
|
||||||
|
f.write("#endif\n")
|
||||||
|
f.write(f"#endif // INC_{filename.upper()}_H\n")
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
# create source file
|
||||||
|
with open(f"./src/{filename.lower()}.c", "w") as f:
|
||||||
|
f.write("// This file is generated by mkfile.py\n")
|
||||||
|
f.write(f"// Date: {datetime.datetime.now().strftime('%Y-%m-%d')}\n\n")
|
||||||
|
f.write(f'#include <solution/{filename.lower()}.h>\n')
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
# create test file
|
||||||
|
with open(f"./tests/test_{filename.lower()}.cpp", "w") as f:
|
||||||
|
f.write("// This file is generated by mkfile.py\n")
|
||||||
|
f.write(f"// Date: {datetime.datetime.now().strftime('%Y-%m-%d')}\n\n")
|
||||||
|
f.write(f'#include <solution/{filename.lower()}.h>\n')
|
||||||
|
f.write("#include <gtest/gtest.h>\n")
|
||||||
|
f.close()
|
||||||
39
mkfile.sh
39
mkfile.sh
@@ -1,39 +0,0 @@
|
|||||||
#!/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