Source File: echo.cpp

// https://www.gnu.org/software/coreutils/manual/html_node/echo-invocation.html 
//
#include <fmt/core.h>
#include <string>
#include <unistd.h>

int main(int argc, char* argv[]) {
  int opt = 0;
  bool no_newline = false;

  while((opt = getopt(argc, argv, "n")) != -1) {
    switch(opt) {
      case 'n':
        no_newline = true;
        break;
      default:
        fmt::println("USAGE: echo -n [text...]");
        return 1;
    }
  }

  for(int i = optind; i < argc; i++) {
    fmt::print("{} ", argv[i]);
  }

  if(!no_newline) {
    fmt::println("\n");
  }
}