50 lines
1.5 KiB
Fish
50 lines
1.5 KiB
Fish
function cppnew -d "Create new C++17 project" --argument-names 'projectname'
|
|
if count $argv > /dev/null
|
|
set conanproj "false"
|
|
set projname ""
|
|
set conanprojname ""
|
|
for item in $argv
|
|
switch "$item"
|
|
case -c --conan
|
|
set conanproj "true"
|
|
set conanprojname $value
|
|
case -h --help
|
|
man ~/dotfiles/fishfunctions/cppnew.man
|
|
return 0
|
|
case '*'
|
|
set projname $item
|
|
end
|
|
end
|
|
if [ "$projname" = "" ]
|
|
if [ "$conanprojname" = "" ]
|
|
echo "Missing argument: PROJECT"
|
|
return -1
|
|
end
|
|
end
|
|
if [ "$projname" = "" ]
|
|
set projname $conanprojname
|
|
end
|
|
if [ "$conanproj" = "true" ]
|
|
cp -r ~/dotfiles/dev/conan-project $projname
|
|
else
|
|
cp -r ~/dotfiles/dev/templateC++ $projname
|
|
end
|
|
cd $projname
|
|
sed -i "s/PROJECTNAME/$projname/g" README.org
|
|
sed -i "s/PROJECTNAME/$projname/g" CMakeLists.txt
|
|
if [ "$conanproj" = "true" ]
|
|
sed -i "s/PROJECTNAME/$projname/g" conanfile.py
|
|
end
|
|
sed -i "s/CPPPROJECTNAME/$projname/g" doc/Doxyfile
|
|
git init
|
|
git add .
|
|
git commit -m "initial commit"
|
|
cd ..
|
|
else
|
|
echo "Missing argument: PROJECT"
|
|
return -1
|
|
end
|
|
end
|
|
complete -c cppnew -s c -l conan -d 'Conan Project'
|
|
complete -c cppnew -s h -l help -d 'Print Help'
|