fasttree-sys 0.2.0

Surowe bindingi FFI (extern "C") do biblioteki FastTree (Nim). Nie używaj bezpośrednio — patrz crate `fasttree`.
import std/os
import fasttree/cli

proc printUsage() =
  echo """
fasttree — content-addressable następca OSTree

Użycie:
  fasttree pull <registry>/<repo>:<tag>
  fasttree status [--diff]
  fasttree deploy <tag> [--atomic]
  fasttree pin <tag> "<notatka>"
  fasttree gc [--dry-run]
  fasttree overlay create <nazwa> [--ephemeral]
  fasttree overlay remove <nazwa>
  fasttree overlay list
  fasttree overlay diff <nazwa>
"""

proc main() =
  let args = commandLineParams()
  if args.len == 0:
    printUsage()
    quit(1)

  case args[0]
  of "pull":
    if args.len < 2: printUsage(); quit(1)
    cmdPull(args[1])
  of "status":
    cmdStatus(showDiff = "--diff" in args)
  of "deploy":
    if args.len < 2: printUsage(); quit(1)
    cmdDeploy(args[1], atomic = "--atomic" in args)
  of "pin":
    if args.len < 3: printUsage(); quit(1)
    cmdPin(args[1], args[2])
  of "gc":
    cmdGc(dryRun = "--dry-run" in args)
  of "overlay":
    if args.len < 2: printUsage(); quit(1)
    case args[1]
    of "create":
      if args.len < 3: printUsage(); quit(1)
      cmdOverlayCreate(args[2], ephemeral = "--ephemeral" in args)
    of "remove":
      if args.len < 3: printUsage(); quit(1)
      cmdOverlayRemove(args[2])
    of "list":
      cmdOverlayList()
    of "diff":
      if args.len < 3: printUsage(); quit(1)
      cmdOverlayDiff(args[2])
    else: printUsage(); quit(1)
  else:
    printUsage()
    quit(1)

when isMainModule:
  main()