Skip to content

shimman-dev/piscator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

piscator - fishing made easy

intro text and piscator demo

Ahoy, fellow sailor! Set your sights on the piscator CLT, a trusty companion for your coding odysseys. With piscator by your side, you'll navigate the vast seas of GitHub with ease, harnessing the power of the command-line interface to explore, capture, and conquer the realm of repositories.

As a seasoned sailor, you'll command the piscator vessel to cast its net into the GitHub sea, deftly capturing the URLs of repositories from users, organizations, or even yourself. With each cast, piscator will bring you a bountiful haul of valuable code treasures, presenting them in a convenient format for further exploration. But piscator's abilities don't end there! With the reel command, you'll transform those captured repositories into tangible assets by creating dedicated directories and git repositories for each catch, ready to be harnessed for your coding voyages.

With its intuitive commands, piscator empowers you to hoist the sails of productivity and embark on coding adventures like never before. Whether you're seeking to explore, collect, or reel in repositories, piscator will be your loyal first mate, guiding you through the GitHub waters with precision and efficiency. Embrace the spirit of the sailor, unleash the power of piscator, and embark on a coding voyage that will leave a lasting mark on the open seas of code.


Table of contents:


Although the current releases page offers binaries for Linux, MacOS, and Windows, rest assured that I have heard your concerns and I am committed to providing ye with the convenience and ease of installation ye deserve. I solemnly swear to make future releases available through all major package managers, for I believe in the principle that good things come to sailors who trust their captain.

So, my dear crew, hold tight to the mast and keep your hearts filled with hope. In the near future, ye shall witness the expansion of piscator's reach, as it sets sail on the vast seas of package managers, bringing ye the treasures of effortless installation and seamless updates. Trust in me, your captain, for I am dedicated to improving the voyage of piscator and ensuring that every sailor can embark on their coding adventures with the wind at their backs.

Together, we shall overcome this minor setback and forge ahead toward a brighter future for piscator. Ye are the lifeblood of this crew, and I am grateful for your unwavering support. May our sails be filled with the winds of progress, as we navigate the ever-changing tides of technology. Onward, my brave crew, for the best is yet to come!

Ahoy, mateys! I bring tidings of great joy for all ye sailors out there. We've finally hoisted the Jolly Roger and released our very own Homebrew tap and Scoop bucket for the mighty piscator! Avast, ye scurvy dogs, and follow these simple steps to get the piscator CLT installed on yer ship:

# homebrew
brew tap shimman-dev/taps
brew install piscator

# scoop
scoop bucket add shimman-dev https://github.com/shimman-dev/scoop-bucket.git
scoop install piscator

Arr, ye be all set now! The piscator CLT be installed and ready to sail the package seas on yer command. But hold fast, me hearties, for this be just the beginning. We'll be setting sail to conquer other package managers in the days to come. So, keep a weather eye on the horizon for more exciting releases!

Fair winds and smooth seas to ye, as ye embark on yer piscator adventures with Homebrew at yer side!

Avast, matey! Let me tell ye about the heart of the piscator vessel: the mighty commands cast and reel.

With a swift cast, the command will fetch ye a bounty of JSON, ripe for the takin'. This JSON treasure can be piped into other commands like fzf or jq to uncover its secrets. And if ye be desirin' a written record of yer findings, simply wave the repos.json flag (-f or --makeFile), and a file named repos.json shall be fashioned right where ye stand (directory where piscator was ran).

But behold, the power of the mighty reel! This command harnesses the fruits of cast to weave a directory in the likeness of the chosen user or organization. Then, with the skill of an expert angler, it reels in each specified repository, be it from the depths of the sea or the local waters. Should a repository already rest in the directory, fear not! reel will deftly pull the latest catch, ensuring ye always have the freshest head.

So, me hearty, set sail with piscator and let the commands cast and reel guide ye on yer voyage to GitHub riches!

Running piscator help will show the commands of piscator. You can also run piscator cast -h and piscator reel -h to see the flags each respective command takes.

running piscator help

Running piscator cast username will output a JSON of public repositories for a user:

running piscator cast shieldbattery

example output of `piscator cast shieldbattery`
[
{
	"name": "broodmap",
	"html_url": "https://github.com/ShieldBattery/broodmap",
	"language": "Rust",
	"fork": false,
	"private": false,
	"size": 4695
},
{
	"name": "rally-point",
	"html_url": "https://github.com/ShieldBattery/rally-point",
	"language": "JavaScript",
	"fork": false,
	"private": false,
	"size": 966
},
{
	"name": "ShieldBattery",
	"html_url": "https://github.com/ShieldBattery/ShieldBattery",
	"language": "TypeScript",
	"fork": false,
	"private": false,
	"size": 244880
},
{
	"name": "stimpack",
	"html_url": "https://github.com/ShieldBattery/stimpack",
	"language": "Rust",
	"fork": false,
	"private": false,
	"size": 57
},
{
	"name": "trrr",
	"html_url": "https://github.com/ShieldBattery/trrr",
	"language": "Rust",
	"fork": false,
	"private": false,
	"size": 18
}
]

Running piscator cast your_username -s will output a JSON of your repositories (public and private; requires a personal access token).

running piscator cast azemetre -s

The -s flag refers to your self, i.e. your GitHub username. The -t flag takes a PAT (how to create a PAT), alternatively you can export your PAT in your terminal environment with the following command (this is demonstrated in the gif above):

export GITHUB_TOKEN=pat_token_here

Please note, that if you update your PAT you may need to remove your current exported token with the following commands:

// remove token
unset GITHUB_TOKEN

// verify token disappeared
printenv GITHUB_TOKEN
example output of `piscator cast azemetre -s`
[
{
	"name": "auteur-palettes",
	"html_url": "https://github.com/azemetre/auteur-palettes",
	"language": "JavaScript",
	"fork": false,
	"private": true,
	"size": 403
},
{
	"name": "azemetredotcom",
	"html_url": "https://github.com/azemetre/azemetredotcom",
	"language": "JavaScript",
	"fork": false,
	"private": true,
	"size": 24256
},
{
	"name": "hipster.nvim",
	"html_url": "https://github.com/azemetre/hipster.nvim",
	"language": "Lua",
	"fork": false,
	"private": false,
	"size": 1446
},
{
	"name": "musical-adventure",
	"html_url": "https://github.com/azemetre/musical-adventure",
	"language": "TypeScript",
	"fork": false,
	"private": true,
	"size": 993
},
{
	"name": "piscator",
	"html_url": "https://github.com/shimman-dev/piscator",
	"language": "Go",
	"fork": false,
	"private": false,
	"size": 1006
}
]

Running piscator cast org_name -o will output a JSON of public and repositories for an organization:

running piscator cast shimman-dev -o

Please note: as with the -s flag (--self), the --org requires a PAT passed with the --token flag or fed into the env variable GITHUB_TOKEN.

example output of `piscator cast shimman-dev -o`
[
{
	"name": "eslint-config",
	"html_url": "https://github.com/shimman-dev/eslint-config",
	"language": "JavaScript",
	"fork": false,
	"private": false,
	"size": 227
},
{
	"name": "piscator",
	"html_url": "https://github.com/shimman-dev/piscator",
	"language": "Go",
	"fork": false,
	"private": false,
	"size": 1006
},
{
	"name": "knockerupper",
	"html_url": "https://github.com/shimman-dev/knockerupper",
	"language": "",
	"fork": false,
	"private": true,
	"size": 14
}
]

Running piscator cast username -x will output a JSON of public and forked repositories:

running piscator cast azemetre -x

example output of `piscator cast azemetre -x`
[
{
	"name": "Adv360-Pro-ZMK",
	"html_url": "https://github.com/azemetre/Adv360-Pro-ZMK",
	"language": "",
	"fork": true,
	"private": false,
	"size": 145
},
	{
	"name": "auteur-palettes",
	"html_url": "https://github.com/azemetre/auteur-palettes",
	"language": "JavaScript",
	"fork": false,
	"private": true,
	"size": 403
}
]

Running piscator cast username -f will output a JSON of public repositories and create a repos.json file:

running piscator cast azemetre -x


Running piscator cast username --language=rust,lua will output a JSON of public repositories filtered by the languages you provide (comma separated) for a user:

running piscator cast azemetre -l rust,lua

example output of `piscator cast azemetre -l rust,lua`
[
  {
    "name": "dotfiles",
    "html_url": "https://github.com/azemetre/dotfiles",
    "language": "Lua",
    "fork": false,
    "private": false,
    "size": 2756
  },
  {
    "name": "hipster.nvim",
    "html_url": "https://github.com/azemetre/hipster.nvim",
    "language": "Lua",
    "fork": false,
    "private": false,
    "size": 1446
  },
  {
    "name": "rust-solutions",
    "html_url": "https://github.com/azemetre/rust-solutions",
    "language": "Rust",
    "fork": false,
    "private": false,
    "size": 47234
  }
]

Please note: piscator reel can take the same flags as piscator cast, so if you would like to reel in repos from an organization or yourself it will require the same flags and arguments.

Running piscator reel org_name create a directory of the user/org and clone their repositories:

running piscator reel azemetre

I'm waiting for it, waiting for it

  • add ability to filter by language
  • flesh out readme
    • create vhs tapes
    • add CONTRIBUTING.md
    • refine github templates
  • automate release binaries
  • release on major package managers
    • homebrew
    • nix
    • fedora
    • macports
    • arch linux (btw)
    • debian
    • scoop
  • add tests
  • generate man pages
  • make showcase site