@echo off
set /P prjName="What is the name of the project (No spaces)?: "
:mkdir
if exist %prjName%\nul goto FolderExists
md %prjName%
md %prjName%\\.vscode
:: md %prjName%\\doc
md %prjName%\\src
::
:: Lisp File
echo ;; File Last Updated: >> %prjName%\\src\\%prjName%.lsp
echo.>> %prjName%\\src\\%prjName%.lsp
echo.>> %prjName%\\src\\%prjName%.lsp
echo.^(defun %prjName% ^( / *error* ERROR-LST- ^)>> %prjName%\\src\\%prjName%.lsp
echo. ^(setq>> %prjName%\\src\\%prjName%.lsp
echo. ERROR-LST->> %prjName%\\src\\%prjName%.lsp
echo. ^'^("AUTOSNAP" "OSMODE" "APERTURE" "HPSPACE" "HPASSOC">> %prjName%\\src\\%prjName%.lsp
echo. "MIRRTEXT" "AUPREC" "LUPREC" "DIMZIN" "CECOLOR" "CLAYER">> %prjName%\\src\\%prjName%.lsp
echo. "CMDECHO" "FILEDIA" "OSMODE"^)>> %prjName%\\src\\%prjName%.lsp
echo. ERROR-LST- ^(mapcar ^(function ^(lambda ^(a^) ^(list ^'setvar a ^(getvar a^)^)^)^) ERROR-LST-^)>> %prjName%\\src\\%prjName%.lsp
echo. ^)>> %prjName%\\src\\%prjName%.lsp
echo. ^(defun *error* ^(msg^)>> %prjName%\\src\\%prjName%.lsp
echo. ^(command^) ^(command^)>> %prjName%\\src\\%prjName%.lsp
echo. ^(mapcar ^'eval ERROR-LST-^)^)>> %prjName%\\src\\%prjName%.lsp
echo. ;;>> %prjName%\\src\\%prjName%.lsp
echo. ;; Begin Project Code>> %prjName%\\src\\%prjName%.lsp
echo.>> %prjName%\\src\\%prjName%.lsp
echo. ;;>> %prjName%\\src\\%prjName%.lsp
echo. ;; End Project Code>> %prjName%\\src\\%prjName%.lsp
echo. ^(princ^)>> %prjName%\\src\\%prjName%.lsp
echo.^)>> %prjName%\\src\\%prjName%.lsp
::
:: readme.md
echo.# %prjName%>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## BRIEF>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.One Paragraph of project description goes here.>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## DESCRIPTION>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.A detailed decription of the project goes here.>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.### GOALS>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.Describe any goals you tried to achieve by writing this project.>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## PREREQUISITES>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.Describe any other tools/code/projects this project requires.>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## RUNNING>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.Describe how to call/run this code.>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.```>> %prjName%\\readme.md
echo.example call>> %prjName%\\readme.md
echo.```>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## AUTHOR>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.Your name [your.name@.email.com]>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.## ACKNOWLEDGMENTS>> %prjName%\\readme.md
echo.>> %prjName%\\readme.md
echo.* Hat tip to anyone whose code was used>> %prjName%\\readme.md
echo.* Inspiration>> %prjName%\\readme.md
echo.* etc>> %prjName%\\readme.md
::
:: tasks.json
echo.{>> %prjName%\\.vscode\\tasks.json
echo. "version": "2.0.0",>> %prjName%\\.vscode\\tasks.json
echo. "tasks": [>> %prjName%\\.vscode\\tasks.json
echo. {>> %prjName%\\.vscode\\tasks.json
echo. "label": "package",>> %prjName%\\.vscode\\tasks.json
echo. "type": "shell",>> %prjName%\\.vscode\\tasks.json
echo. "command": "git archive -o ..\\%prjName%_archive.zip HEAD",>> %prjName%\\.vscode\\tasks.json
echo. "group": {>> %prjName%\\.vscode\\tasks.json
echo. "kind": "build",>> %prjName%\\.vscode\\tasks.json
echo. "isDefault": true>> %prjName%\\.vscode\\tasks.json
echo. }>> %prjName%\\.vscode\\tasks.json
echo. }>> %prjName%\\.vscode\\tasks.json
echo. ]>> %prjName%\\.vscode\\tasks.json
echo.}>> %prjName%\\.vscode\\tasks.json
::
:: launch.json
echo.{>> %prjName%\\.vscode\\launch.json
echo. "version": "0.2.0",>> %prjName%\\.vscode\\launch.json
echo. "configurations": [>> %prjName%\\.vscode\\launch.json
echo. {>> %prjName%\\.vscode\\launch.json
echo. "type": "attachlisp",>> %prjName%\\.vscode\\launch.json
echo. "request": "attach",>> %prjName%\\.vscode\\launch.json
echo. "name": "AutoLISP Debug: Attach",>> %prjName%\\.vscode\\launch.json
echo. "attributes": {>> %prjName%\\.vscode\\launch.json
echo. "//": "This configuration will load a lisp into a running instance of AutoCAD which is identified before VS Code enters Debug mode",>> %prjName%\\.vscode\\launch.json
echo. "process": "acad">> %prjName%\\.vscode\\launch.json
echo. }>> %prjName%\\.vscode\\launch.json
echo. },>> %prjName%\\.vscode\\launch.json
echo. {>> %prjName%\\.vscode\\launch.json
echo. "type": "launchlisp",>> %prjName%\\.vscode\\launch.json
echo. "request": "launch",>> %prjName%\\.vscode\\launch.json
echo. "name": "AutoLISP Debug: Launch",>> %prjName%\\.vscode\\launch.json
echo. "attributes": {>> %prjName%\\.vscode\\launch.json
echo. "//": "This configuration will load a lisp into a new instance of AutoCAD",>> %prjName%\\.vscode\\launch.json
echo "path": "acad.exe">> %prjName%\\.vscode\\launch.json
echo. }>> %prjName%\\.vscode\\launch.json
echo. }>> %prjName%\\.vscode\\launch.json
echo. ]>> %prjName%\\.vscode\\launch.json
echo.}>> %prjName%\\.vscode\\launch.json
::
:: code-workspace
echo.{>> %prjName%\\%prjName%.code-workspace
echo. "folders": [>> %prjName%\\%prjName%.code-workspace
echo. {>> %prjName%\\%prjName%.code-workspace
echo. "path": ".">> %prjName%\\%prjName%.code-workspace
echo. }>> %prjName%\\%prjName%.code-workspace
echo. ],>> %prjName%\\%prjName%.code-workspace
echo. "settings": {}>> %prjName%\\%prjName%.code-workspace
echo.}>> %prjName%\\%prjName%.code-workspace
echo.;;; VLisp project file [V2.0]>> %prjName%\\%prjName%.prj
echo.(VLISP-PROJECT-LIST >> %prjName%\\%prjName%.prj
echo. :NAME>> %prjName%\\%prjName%.prj
echo. %prjName%>> %prjName%\\%prjName%.prj
echo. :OWN-LIST>> %prjName%\\%prjName%.prj
echo. (".//src//%prjName%")>> %prjName%\\%prjName%.prj
echo. :FAS-DIRECTORY>> %prjName%\\%prjName%.prj
echo. nil>> %prjName%\\%prjName%.prj
echo. :TMP-DIRECTORY>> %prjName%\\%prjName%.prj
echo. nil>> %prjName%\\%prjName%.prj
echo. :PROJECT-KEYS>> %prjName%\\%prjName%.prj
echo. (:BUILD (:standard))>> %prjName%\\%prjName%.prj
echo. :CONTEXT-ID>> %prjName%\\%prjName%.prj
echo. :AUTOLISP>> %prjName%\\%prjName%.prj
echo.)>> %prjName%\\%prjName%.prj
echo.;;; EOF>> %prjName%\\%prjName%.prj
::
:: .gitignore
echo.# Object files >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.o >> %prjName%\\.gitignore
echo.*.ko >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Libraries >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.com >> %prjName%\\.gitignore
echo.*.lib >> %prjName%\\.gitignore
echo.*.a >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Shared objects >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.dll >> %prjName%\\.gitignore
echo.*.so >> %prjName%\\.gitignore
echo.*.so.* >> %prjName%\\.gitignore
echo.*.dylib >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Executables >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.exe >> %prjName%\\.gitignore
echo.*.out >> %prjName%\\.gitignore
echo.*.app >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Packages >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.# it's better to unpack these files and commit the raw source >> %prjName%\\.gitignore
echo.# git has its own built in compression methods >> %prjName%\\.gitignore
echo.*.7z >> %prjName%\\.gitignore
echo.*.dmg >> %prjName%\\.gitignore
echo.*.gz >> %prjName%\\.gitignore
echo.*.iso >> %prjName%\\.gitignore
echo.*.jar >> %prjName%\\.gitignore
echo.*.rar >> %prjName%\\.gitignore
echo.*.tar >> %prjName%\\.gitignore
echo.*.zip >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Packing-only formats >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.iso >> %prjName%\\.gitignore
echo.*.tar >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Package management formats >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.dmg >> %prjName%\\.gitignore
echo.*.xpi >> %prjName%\\.gitignore
echo.*.gem >> %prjName%\\.gitignore
echo.*.egg >> %prjName%\\.gitignore
echo.*.deb >> %prjName%\\.gitignore
echo.*.rpm >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Logs and databases >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo.*.log >> %prjName%\\.gitignore
echo.*.sql >> %prjName%\\.gitignore
echo.*.sqlite >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# OS generated files >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo..DS_Store >> %prjName%\\.gitignore
echo..DS_Store? >> %prjName%\\.gitignore
echo.._* >> %prjName%\\.gitignore
echo..Spotlight-V100 >> %prjName%\\.gitignore
echo..Trashes >> %prjName%\\.gitignore
echo.ehthumbs.db >> %prjName%\\.gitignore
echo.Thumbs.db >> %prjName%\\.gitignore
echo. >> %prjName%\\.gitignore
echo.# Local stuff >> %prjName%\\.gitignore
echo.# This section is devoted to this project >> %prjName%\\.gitignore
echo.############################## >> %prjName%\\.gitignore
echo..vscode/*>> %prjName%\\.gitignore
echo..vscode/tasks.json>> %prjName%\\.gitignore
echo..vscode/launch.json>> %prjName%\\.gitignore
echo.*.json>> %prjName%\\.gitignore
echo.*code-workspace>> %prjName%\\.gitignore
echo.*%prjName%.prj>> %prjName%\\.gitignore
call git init %prjName%
cd %prjName%
call git add .gitignore
call git commit -m ".gitignore: Initial commit."
call git add src\\%prjName%.lsp
call git commit -m "%prjName%.lsp: Initial commit."
cd ..
if not exist %prjName%\nul goto FolderNotMade
echo Made folder %prjName%
goto end
:FolderExists
echo %prjName% already exists
goto end
:FolderNotMade
echo %prjName% could not be made
:end
pause