You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rayder is a command-line tool designed to simplify the orchestration and execution of workflows. It allows you to define a series of steps in a YAML file, each consisting of a command to be executed and optional output redirection. Rayder helps automate complex processes, making it easy to streamline repetitive tasks, and executing them parallelly if the commands do not depend on each other.
23
+
Rayder is a command-line tool designed to simplify the orchestration and execution of workflows. It allows you to define a series of modules in a YAML file, each consisting of commands to be executed. Rayder helps you automate complex processes, making it easy to streamline repetitive modules and execute them parallelly if the commands do not depend on each other.
25
24
26
25
## Installation
27
26
28
27
To install Rayder, ensure you have Go (1.16 or higher) installed on your system. Then, run the following command:
A workflow is defined in a YAML file with the following structure:
45
44
46
45
```yaml
47
-
workflow: workflow-name
46
+
vars:
47
+
VAR_NAME: value
48
+
# Add more variables...
49
+
48
50
parallel: true|false
49
-
silent: true|false
50
-
output-dir: output-directory
51
-
output-file: workflow.log
52
-
steps:
53
-
step-1: command-1
54
-
step-2: command-2
55
-
# Add more steps...
51
+
modules:
52
+
- name: task-name
53
+
cmds:
54
+
- command-1
55
+
- command-2
56
+
# Add more commands...
57
+
silent: true|false
58
+
# Add more modules...
56
59
```
57
60
61
+
## Using Variables in Workflows
62
+
63
+
Rayder allows you to use variables in your workflow configuration, making it easy to parameterize your commands and achieve more flexibility. You can define variables in the `vars` section of your workflow YAML file. These variables can then be referenced within your command strings using double curly braces (`{{}}`).
58
64
59
-
## Example workflow with placeholder
65
+
### Defining Variables
66
+
67
+
To define variables, add them to the `vars` section of your workflow YAML file:
You can reference variables within your command strings using double curly braces (`{{}}`). For example, if you defined a variable `OUTPUT_DIR`, you can use it like this:
79
+
80
+
```yaml
81
+
modules:
82
+
- name: example-task
83
+
cmds:
84
+
- echo "Output directory: {{OUTPUT_DIR}}"
73
85
```
74
86
75
-
To be executed as:
87
+
### Supplying Variables via the Command Line
88
+
89
+
You can also supply values for variables via the command line when executing your workflow. Use the format `VARIABLE_NAME=value` to provide values for specific variables. For example:
If you don't provide values for variables via the command line, Rayder will automatically apply default values defined in the `vars` section of your workflow YAML file.
81
96
97
+
Remember that variables supplied via the command line will override the default values defined in the YAML configuration.
82
98
83
-
## Parallel Execution
99
+
## Example
100
+
101
+
### Example 1:
102
+
103
+
Here's an example of how you can define, reference, and supply variables in your workflow configuration:
104
+
105
+
```yaml
106
+
vars:
107
+
ORG: "example.org"
108
+
OUTPUT_DIR: "results"
109
+
110
+
modules:
111
+
- name: example-task
112
+
cmds:
113
+
- echo "Organization: {{ORG}}"
114
+
- echo "Output directory: {{OUTPUT_DIR}}"
115
+
```
116
+
117
+
When executing the workflow, you can provide values for `ORG` and `OUTPUT_DIR` via the command line like this:
84
118
85
-
The `parallel` field in the workflow configuration determines whether steps should be executed in parallel or sequentially. Setting `parallel` to `true` allows steps to run concurrently, making it suitable for tasks with no dependencies. When set to `false`, steps will execute one after another.
This will override the default values and use the provided values for these variables.
124
+
125
+
126
+
127
+
128
+
### Example 2:
129
+
130
+
Here's an example workflow configuration tailored for reverse whois recon and processing the root domains into subdomains, resolving them and checking which ones are alive:
The `parallel` field in the workflow configuration determines whether modules should be executed in parallel or sequentially. Setting `parallel` to `true` allows modules to run concurrently, making it suitable for modules with no dependencies. When set to `false`, modules will execute one after another.
87
178
88
179
## Workflows
89
180
90
-
A collection of [Rayder workflows](https://github.com/devanshbatham/rayder-workflows) to be publish soon. Stay tuned..
181
+
Explore a collection of sample workflows and examples in the [Rayder workflows repository](https://github.com/devanshbatham/rayder-workflows). Stay tuned for more additions!
182
+
183
+
## Inspiration
184
+
Inspiration of this project comes from Awesome [taskfile](https://taskfile.dev/) project.
0 commit comments