// https://en.wikipedia.org/wiki/Data-flow_diagram

digraph {

  label = "Seppo.app: Post Status\nData-flow Diagram";
  labelloc = t;
  //rankdir = LR;

  node [shape=box];
  human;

  node [shape=cylinder];
  "auth.s";
  "ban.cdb";
  "ban.s";
  "config.s";
  "days.xml";
  "entry.xml";
  "feed.xml";
  "head.xml";
  "posse.s";
  "tags.xml";
  "write.s";
  activitypub;
  idx;
  mastodon;
  micropub;
  pinboard;
  twitter;

  node [shape=rectangle];

  node [shape=circle];

  "auth?" -> human [label=no];
  "auth?" -> "do ban" [label=no];
  "ban.cdb" -> "ban?";
  "ban.s" -> "do ban";
  "ban?" -> human [label=yes];
  "auth.s" -> "auth?";
  "config.s" -> "auth?";
  "feed.xml" -> read;
  idx -> read;
  "feed.xml"
    -> human
    -> "ban?"
    -> "auth?" [label=no];
  "auth?"
    -> read [label=yes];
  "read"
    -> write;
  "write.s" -> write;
  "head.xml" -> write;
  posse -> activitypub;
  "posse.s" -> posse;
  posse -> mastodon;
  posse -> micropub;
  posse -> pinboard;
  posse -> twitter;
  PuSH -> posse;
  "feed.xml" -> PuSH;

  edge [color=red style=dashed];
  "do ban" -> "ban.cdb";
  write -> "feed.xml";
  "feed.xml" -> "entry.xml";
  "feed.xml" -> "tags.xml";
  "feed.xml" -> "days.xml";
  "feed.xml" -> idx;
}
