https://github.com/datumbrain/training-ut-util-go
Utility (merger) implementation in Go.
https://github.com/datumbrain/training-ut-util-go
Last synced: 3 months ago
JSON representation
Utility (merger) implementation in Go.
- Host: GitHub
- URL: https://github.com/datumbrain/training-ut-util-go
- Owner: datumbrain
- Created: 2024-07-01T07:03:37.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-07-09T08:20:04.000Z (almost 2 years ago)
- Last Synced: 2025-08-31T16:04:17.573Z (10 months ago)
- Homepage:
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Utility
This repository contains a Go CLI that performs file merging operations. The CLI merges all JSONL files in a specified directory into a single JSONL file and stores it in an output directory. Additionally, if the --format csv flag is used, the output is a CSV file.
## Task Description
**Objective:** Create a Go CLI tool named `util` that performs file merging operations. The tool should merge all JSONL files in a specified directory into a single JSONL file and store it in an output directory. Additionally, if the `--format csv` flag is used, the output should be a CSV file.
## Requirements
1. **CLI Flags:**
- `--operation merge`: Specifies the operation to be performed.
- `--input-path ./`: Path to the directory containing JSONL files to be merged.
- `--output-path ./`: Path to the directory where the merged file will be stored.
- `--format csv`: (Optional) If provided, the output should be a CSV file instead of a JSONL file.
2. **Functionality:**
- Read all JSONL files from the input directory.
- Merge the content of all JSONL files into a single JSONL file.
- If the `--format csv` flag is detected, convert the merged JSONL content to CSV format.
- Save the merged file (in JSONL or CSV format) to the specified output directory.
3. **Bonus:** Implement the `--format csv` flag to output a CSV file.
## Steps to Complete the Task
1. **Setup Go Environment:**
- Ensure Go is installed on your machine.
- Create a new Go module.
2. **Implement the CLI Tool:**
- Use a CLI package like `flag` or `cobra` for parsing command-line arguments.
- Implement functions to read and merge JSONL files.
- Implement functions to convert JSONL to CSV format (if required).
- Implement the main function to handle CLI arguments and execute the appropriate functions.
3. **Testing:**
- Create a few sample JSONL files for testing.
- Test the tool by running the command with different flag combinations.
4. **Documentation:**
- Provide clear instructions on how to use the tool, including examples.
## Example Commands
1. Merge JSONL files into a single JSONL file:
```bash
./bin/util --operation merge --input-path ./data/jsonl_files/ --output-path ./output_data
```
2. Merge JSONL files and output as a CSV file:
```bash
./bin/util --operation merge --input-path ./data/jsonl_files/ --output-path ./output_data --format csv
```
## Submission
Submit the following:
1. The complete Go code.
2. Sample input JSONL files for testing.
3. A README file with instructions on how to build and run the tool, including example commands.
Good luck with the task!