https://github.com/l-lawliet07/spyc
🖥️ cli tool for competitive programmers...
https://github.com/l-lawliet07/spyc
autoreload cli competitive-programmers cpp gcc nodejs
Last synced: 12 months ago
JSON representation
🖥️ cli tool for competitive programmers...
- Host: GitHub
- URL: https://github.com/l-lawliet07/spyc
- Owner: L-lawliet07
- Created: 2019-12-26T13:05:35.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-23T08:45:58.000Z (over 6 years ago)
- Last Synced: 2025-06-26T19:05:48.675Z (about 1 year ago)
- Topics: autoreload, cli, competitive-programmers, cpp, gcc, nodejs
- Language: JavaScript
- Homepage:
- Size: 11.6 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# So what is spyc ?
`spyc` is a `CLI` tool that monitors your `CPP` code and automatically compiles and executes the code whenever there is a change in the file.
`spyc` is designed mainly for competitive programmers so that they can efficiently debug and execute their code for multiple test cases without compiling again and again.
`spyc` also supports some of the common GCC flags used in competitive programming.
# Installation
### Using [npm](https://www.npmjs.com/~lawliet07)
##### `Install` globally
```bash
npm install -g spyc
```
##### `Install` as a dev dependency
```bash
npm install --save-dev spyc
```
# Usage
To run `spyc` write.
```bash
spyc [,options]
```
### Help
For CLI options, use `-h` or `--help`.
```bash
spyc -h
```

## Runtime input
`spyc` allows user to provide or change the input file at runtime without stopping the currently running `spyc` program, this help programmers to check their code on multiple test cases without much effort.
For example click here.
## Cat file
`spyc` also allows users to see their `cpp` file or input file at runtime with the help of `cat` option.
For example click here.
## Check Stats
In `spyc` user can also see the past stats using `stats` options for performance comparison. This helps the user to check and compare the efficiency of their code on different test cases.
For example click here.
## Supports some common gcc flags
`spyc` also support some of the common gcc flags like,
| Flags | |
| --------- | ------------------------------------------------------- |
| std | std - Specify the C++ version or ISO standard version. |
| Wall | Turns on lots of compiler warning flags. |
| Werror | Turn any warning into a compilation error. |
| Wextra | Enables extra flags not enabled by -Wall. |
| Wshadow | Enable warning for Variable Shadowing. |
| O0 | No optmization. |
| O3 | Higher level of optmization. |
| fsanitize | Sanitizer for runtime checks. (eg. --fsanitize=address) |
## My personal flag options
You guys can also use my preferred GCC flag options for compiling the code using `quick` flag.
```bash
spyc ./sample.cpp --quick
```
`quick` option will enable the following gcc flag combination.
``` bash
g++ -DLOCAL -std=c++17 -Wshadow -Wall -o -fsanitize=address
-fsanitize=undefined -D_GLIBCXX_DEBUG -g
```
## Examples
#### Demo to run simple cpp file.
**Run command.**
```bash
spyc ./sample.cpp
```

#### Demo to run cpp file with input.
**Run command.**
```bash
spyc ./sample.cpp --input=
```
or
``` bash
spyc ./sample.cpp -i=
```

#### Demo to change the input file without restarting the app.
In `spyc`, we can also change or provide input at runtime without restarting the tool.
This will help users to check their code on different test cases without wasting time on compiling and executing the code manually.
**Run command.**
``` bash
--input=./in
```
or
```bash
-i=./in
```

#### Demo to `cat` input or code at runtime.
`spyc` can also display input file or cpp code at runtime without pausing or stopping the tool.
This helps competitive programmers to see and debug their code or check the input file within the `spyc` tool.
``` bash
--cat=
```

#### Demo to check the stats.
In `spyc`, users can also see stats from past executions. This will help the user to optimize their code by comparing the execution time of their code.
```bash
stats
```

---
---