Start work on dashinit, in nim.
This commit is contained in:
commit
b3aed80afd
6 changed files with 164 additions and 0 deletions
37
.gitignore
vendored
Normal file
37
.gitignore
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
# Ignore build directories
|
||||
build/
|
||||
dist/
|
||||
|
||||
# Nim cache and generated files
|
||||
nimcache/
|
||||
*.nimble-link
|
||||
*.nim.cfg
|
||||
*.nimble
|
||||
*.so
|
||||
*.dll
|
||||
*.dylib
|
||||
*.exe
|
||||
|
||||
# Ignore specific NimScript files, but not config.nims
|
||||
*.nims
|
||||
|
||||
# Ignore VS Code settings
|
||||
.vscode/
|
||||
|
||||
# Logs and databases
|
||||
*.log
|
||||
*.lst
|
||||
*.db
|
||||
|
||||
# Ignore any temporary files
|
||||
*.tmp
|
||||
*.swp
|
||||
*.bak
|
||||
*~
|
||||
|
||||
# If using nimpretty for code formatting
|
||||
.nimpretty.cfg
|
||||
|
||||
# Exclude project files
|
||||
!config.nims
|
||||
!dashinit.nimble
|
42
README.md
Normal file
42
README.md
Normal file
|
@ -0,0 +1,42 @@
|
|||
# dashinit
|
||||
|
||||
Simple yet powerful Rust powered templating tool. Fully configurable!
|
||||
|
||||
## Table of contents
|
||||
|
||||
- [dashinit](#dashinit)
|
||||
- [Table of contents](#table-of-contents)
|
||||
- [Install using script](#install-using-script)
|
||||
- [Compile \& install manually](#compile--install-manually)
|
||||
- [Update](#update)
|
||||
- [Usage](#usage)
|
||||
- [Uninstall](#uninstall)
|
||||
|
||||
## Install using script
|
||||
|
||||
Still not in usable state, instructions will follow.
|
||||
|
||||
## Compile & install manually
|
||||
|
||||
To compile `dashinit`, run the following command after cloning:
|
||||
|
||||
```bash
|
||||
# build a binary
|
||||
nim build
|
||||
```
|
||||
|
||||
## Update
|
||||
|
||||
Still not in usable state, instructions will follow.
|
||||
|
||||
## Usage
|
||||
|
||||
To use niminit, run it inside the folder you'd like to initialise.
|
||||
Optionally, you can pass the ``-g`` flag to also create a git repository.
|
||||
|
||||
## Uninstall
|
||||
|
||||
Still not in usable state, instructions will follow.
|
||||
|
||||
---
|
||||
[Back to the top](#dashinit)
|
67
config.nims
Normal file
67
config.nims
Normal file
|
@ -0,0 +1,67 @@
|
|||
#### config.nims ####
|
||||
|
||||
# Set some common options
|
||||
switch("d", "release")
|
||||
switch("hints", "off")
|
||||
|
||||
# Helper procs to abstract away OS-specific commands
|
||||
proc createDirectory(dir: string) =
|
||||
when defined(windows):
|
||||
exec "cmd /c mkdir " & dir
|
||||
else:
|
||||
exec "mkdir -p " & dir
|
||||
|
||||
proc removeFileOrDir(path: string) =
|
||||
when defined(windows):
|
||||
if path.endsWith("/"):
|
||||
exec "cmd /c rmdir /s /q " & path
|
||||
else:
|
||||
exec "cmd /c del /f /q " & path
|
||||
else:
|
||||
exec "rm -rf " & path
|
||||
|
||||
# Build task for intermediate builds
|
||||
task build, "Compile the project for intermediate builds":
|
||||
createDirectory("build") ## Ensure the build directory exists
|
||||
exec "nim c -o:build/dashinit src/main.nim" ## Compile the main project file into the build directory
|
||||
|
||||
# Distribution task for final builds
|
||||
task dist, "Compile the project for distribution":
|
||||
createDirectory("dist") ## Ensure the directory exists
|
||||
exec "nim c -o:dist/dashinit src/main.nim" ## Compile the main project file into the dist directory
|
||||
|
||||
# Dev task (Compiles and runs main.nim)
|
||||
task dev, "Run tests":
|
||||
switch("undef", "release") ## Unset the release switch for this task
|
||||
createDirectory("dev") ## Ensure dev directory exists
|
||||
exec "nim c -o:dev/dashinit -r src/main.nim"
|
||||
|
||||
# Clean task to remove generated files
|
||||
task clean, "Clean up generated files":
|
||||
removeFileOrDir("build/*")
|
||||
removeFileOrDir("dist/*")
|
||||
removeFileOrDir("dev/*")
|
||||
|
||||
task deepclean, "Clean up by removing build/ and dist/ directories":
|
||||
removeFileOrDir("build/")
|
||||
removeFileOrDir("dist/")
|
||||
removeFileOrDir("dev/")
|
||||
|
||||
|
||||
#### Aliases ####
|
||||
|
||||
# Build shorthand
|
||||
task b, "Alias for build task":
|
||||
exec "nim build"
|
||||
|
||||
# Dist shorthand
|
||||
task d, "Alias for dist task":
|
||||
exec "nim dist"
|
||||
|
||||
# Clean shorthand
|
||||
task cl, "Alias for clean task":
|
||||
exec "nim clean"
|
||||
|
||||
# Deepclean shorthand
|
||||
task dcl, "Alias for deep clean task":
|
||||
exec "nim deepclean"
|
13
dashinit.nimble
Normal file
13
dashinit.nimble
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Package
|
||||
|
||||
version = "0.1.0"
|
||||
author = "Sangelo"
|
||||
description = "A fast way to initialise all your projects!"
|
||||
license = "MIT"
|
||||
srcDir = "src"
|
||||
bin = @["dashinit"]
|
||||
|
||||
|
||||
# Dependencies
|
||||
|
||||
requires "nim >= 2.0.0"
|
BIN
src/main
Executable file
BIN
src/main
Executable file
Binary file not shown.
5
src/main.nim
Normal file
5
src/main.nim
Normal file
|
@ -0,0 +1,5 @@
|
|||
# This is just an example to get you started. A typical binary package
|
||||
# uses this file as the main entry point of the application.
|
||||
|
||||
when isMainModule:
|
||||
echo("Hello, World!")
|
Loading…
Reference in a new issue