devlooped / devlooped/dotnet-file

Revampt as dotnet-cat

Open
#127 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
63
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Given https://www.linfo.org/cat.html definition:

cat is one of the most frequently used commands on Unix-like operating systems. It has three related functions with regard to text files: displaying them, combining copies of them and creating new ones.

And the catbag concept, we want to:

  • Rename project to dotnet-cat
  • Revamp implementation to use Spectre.Console for better progress and overall output
  • Leverage proper globing for more precise sync
  • Add significant test coverage to improve reliability since the globing isn't trivial

Some key features:

  • Should allow flexible globing with multiple include/exclude strings, such as:
[file]
  url = https://github.com/git-ecosystem/git-credential-manager/tree/v2.6.0/src/shared/Core/Interop
  include = *.cs
  include = **/*FileSystem.cs
  exclude = **/MacOS/**/*.*
  • CLI should allow specifying this via multiple -i|--include and -e|--exclude options.
  • CLI should provide a --dry-run for all commands (including add, so you can test your include/excludes)
  • Include/exclude would only be supported initially for github tree URLs (since it requires the GH CLI to fetch the directory contents)

Back this issue
Back this issue

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing CLI entry points, especially the add command, and the current handling of GitHub tree URLs; the issue names no files or tests. Done means the project is renamed, CLI output uses Spectre.Console, include/exclude globbing and dry-run options work as specified, and significant test coverage is added.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, github
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.