rad

From NAT, 7 Years ago, written in Bash, viewed 745 times.
URL https://code.nat.moe/view/b03361a0 Embed
Download Paste or View Raw
  1. #!/bin/bash
  2. FILE=./db.pl
  3. function h {
  4.         echo "\
  5. ========================= Command Help =========================
  6. Usage: a <rel> <tar1> <tar2> [non-dw]
  7.       rel: Relationships(f/l/pl/k/h/ph)
  8.       tar1: Target 1
  9.       tar2: Target 2
  10.       non-dw: Set any value to this if the relationship is not
  11.               double way
  12. Usage: c <tar1> <tar2> [tar3] [tar4] ... [tarN]
  13.       Enter any names (at least 2) to create a compound relati
  14.       -onship. ONLY give names as parameters, script will prom
  15.       -t you to input relationship.
  16. Usage: f <file>
  17.       Change working file (Default ./db.pl)"
  18.  
  19. }
  20. function f {
  21.         if [[ -z $1 ]]
  22.         then
  23.                 echo "Error: missing parameter"
  24.                 return 1
  25.         else
  26.                 echo "Working on $1"
  27.                 FILE=$1
  28.         fi
  29. }
  30. function get_rel {
  31.         case $1 in
  32.                 f|friend)
  33.                         R="friend"
  34.                 ;;
  35.                 l|love)
  36.                         R="love"
  37.                 ;;
  38.                 pl|possiblelove)
  39.                         R="possiblelove"
  40.                 ;;
  41.                 k|know)
  42.                         R="definedknow"
  43.                 ;;
  44.                 h|hate)
  45.                         R="hate"
  46.                 ;;
  47.                 ph|possiblehate)
  48.                         R="possiblehate"
  49.                 ;;
  50.                 *)
  51.                         return 1;
  52.                 ;;
  53.         esac
  54.         echo $R
  55. }
  56. function a {
  57.         if [[ -z $1 || -z $2 || -z $3 ]]
  58.         then
  59.                 echo "Error: missing parameters"
  60.                 return 1;
  61.         fi
  62.         R=$(get_rel $1)
  63.         echo "$R($2,$3)." >> $FILE.tmp
  64.         if [[ -z $4 ]]
  65.         then
  66.                 echo "$R($3,$2)." >> $FILE.tmp
  67.         fi
  68.         cat $FILE.tmp
  69.         cfm_write
  70. }
  71. function c {
  72.         if [[ -z $1 || -z $2 || -z $3 ]]
  73.         then
  74.                 echo "Error: missing operator"
  75.                 return 1;
  76.         fi
  77.         echo -n "Relationship: "; read rel;
  78.         R=$(get_rel $rel)
  79.         for tar1 in $*
  80.         do
  81.                 for tar2 in $*
  82.                 do
  83.                         if [[ $tar1 != $tar2 ]]
  84.                         then
  85.                                 echo "$R($tar1,$tar2)." >> $FILE.tmp
  86.                         fi
  87.                 done
  88.         done
  89.         cfm_write
  90. }
  91. function cfm_write {
  92.         cat $FILE.tmp
  93.         echo -n "Write to $FILE? [Y/n] "; read yn;
  94.         if [[ -z $yn ]]
  95.         then
  96.                 yn="Y"
  97.         fi
  98.         case $yn in
  99.                 y|yes|Y|Yes)
  100.                         echo -n "Writing file... "
  101.                         cat $FILE.tmp >> $FILE
  102.                         echo "OK"
  103.                 ;;
  104.                 *)
  105.                         echo "Give up writing."
  106.                 ;;
  107.         esac
  108.         rm $FILE.tmp
  109. }
  110. function s {
  111.         cat $FILE
  112. }
  113. function rs {
  114.         sort $FILE -o $FILE
  115. }
  116. function interactive {
  117. echo "rad - Relationship Addition "
  118. echo "\
  119. Available Commands: a - add, c - add complex relationship,
  120. s - show relationship, rs - resort relationship, h - help"
  121. echo "Default file: ./db.pl"
  122. while true
  123. do
  124.         echo -n "rad> "; read cmd;
  125.         $cmd;
  126. done
  127. }
  128. if [[ -z $* ]]
  129. then
  130.         interactive
  131. else
  132.         $*
  133. fi
  134. exit

Replies to rad rss

Title Name Language When
Re: rad NAT bash 7 Years ago.

Reply to "rad"

Here you can reply to the paste above

captcha