Countryfetch Save

A CLI tool for fetching information about countries. Written in Go.

Project README

Countryfetch

A cli tool for fetching information about countries. A Go alternative to my original countryfetch which is written in TypeScript (Deno). It uses https://restcountries.com/ for back-end.

Important

Please support restcountries.com if you can, as it is going to shut down by the end of May 2023 due to the lack of funding, which means this CLI tool will become obsolete.

Installation & Usage

Make sure you have GO installed and run this one-line installer:

go install github.com/CondensedMilk7/countryfetch/cmd/countryfetch@latest

First make sure you run countryfetch -sync, optionally with -flag to store data in cache.

USAGE:
  -capital string
    	Find country by given capital.
  -flag
    	Include ASCII flag in the operation. Can be used in combination with -sync & -name.
  -flagonly
    	Print flag only. Must be used with -name.
  -flagremote
    	Print flag via remote URL. Can be used in combination with -flagonly. Must be used with -name.
  -height int
    	Specify flag height. Can be used with -flagremote and -sync -flags (default 12)
  -help
    	Get usage help
  -name string
    	Find country by given name.
  -random
      Print a random country.
  -sync
    	Fetch and save data to cache.
  -width int
    	Specify flag width. Can be used with -flagremote and -sync -flags (default 40)
EXAMPLE:
  countryfetch -name italy -flag
        Fetch information about Italy, including its flag.
  countryfetch -sync -flag
        Store information of all countries in cache, including generated flag ASCII art.
  countryfetch -capital "kuala lumpur"
        Fetch information about the country of given capital.
  countryfetch -flagonly -name "united states"
        Fetch just the flag of USA.

Note that string arguments with multiple words have to be enclosed in brackets.

TypeScript (Deno) vs. Go

Here's a (little irrelevant) performance comparison between TypeScript and Go versions measured with time utility:

Regular fetch

TypeScript (Deno)

countryfetch south korea  0.20s user 0.02s system 100% cpu 0.215 total

Go

countryfetch -flag -name "south korea"  0.01s user 0.00s system 105% cpu 0.014 total

Generating ASCII and caching

TypeScript (Deno)

countryfetch sync flags  13.16s user 0.32s system 19% cpu 1:08.47 total

Go

countryfetch -sync -flag  7.92s user 0.30s system 35% cpu 23.377 total
Open Source Agenda is not affiliated with "Countryfetch" Project. README Source: CondensedMilk7/countryfetch
Stars
22
Open Issues
0
Last Commit
1 year ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating