gvmap.sh 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/bin/sh
  2. # Script for gvmap pipeline
  3. # Use -A to add flags for gvmap; e.g., -Ae results in gvmap -e
  4. # -K can be used to change the original layout; by default, sfdp is used
  5. # -T is used to specify the final output format
  6. # -G, -N and -E flags can be used to tailor the rendering
  7. # -g, -n and -e flags can be used to tailor the initial layout
  8. # Be careful of spaces in the flags. If these are not wrapped in quotes, the
  9. # parts will be separated during option processing.
  10. LAYOUT=sfdp
  11. OPTSTR="vVA:G:E:N:g:e:n:K:T:o:"
  12. USAGE="Usage: gvmap [-vV] [-A gvmap flags] [-G attr=val] [-E attr=val] [-N attr=val] [-g attr=val] [-e attr=val] [-n attr=val] [-K layout] [-T output format] [-o outfile]"
  13. FLAGS1=
  14. FLAGS2=
  15. FLAGS3=
  16. while getopts ":$OPTSTR" c
  17. do
  18. case $c in
  19. v )
  20. VERBOSE=1
  21. FLAGS1="$FLAGS1 -v"
  22. FLAGS2="$FLAGS2 -v"
  23. FLAGS3="$FLAGS3 -v"
  24. ;;
  25. V )
  26. dot -V
  27. exit 0
  28. ;;
  29. K )
  30. LAYOUT=$OPTARG
  31. ;;
  32. A )
  33. FLAGS2="$FLAGS2 -$OPTARG"
  34. ;;
  35. T )
  36. FLAGS3="$FLAGS3 -T$OPTARG"
  37. ;;
  38. e )
  39. FLAGS1="$FLAGS1 -E$OPTARG"
  40. ;;
  41. n )
  42. FLAGS1="$FLAGS1 -N$OPTARG"
  43. ;;
  44. g )
  45. FLAGS1="$FLAGS1 -G$OPTARG"
  46. ;;
  47. E )
  48. FLAGS3="$FLAGS3 -E$OPTARG"
  49. ;;
  50. N )
  51. FLAGS3="$FLAGS3 -N$OPTARG"
  52. ;;
  53. G )
  54. FLAGS3="$FLAGS3 -G$OPTARG"
  55. ;;
  56. o )
  57. FLAGS3="$FLAGS3 -o$OPTARG"
  58. ;;
  59. :)
  60. printf '%s requires a value\n' "$OPTARG" >&2
  61. exit 2
  62. ;;
  63. \? )
  64. if [ "$OPTARG" = "?" ]
  65. then
  66. printf '%s\n' "$USAGE"
  67. exit 0
  68. else
  69. printf 'gvmap: unknown flag %s\n' "$OPTARG" >&2
  70. printf '%s\n' "$USAGE"
  71. exit 2
  72. fi
  73. ;;
  74. esac
  75. done
  76. shift $((OPTIND-1))
  77. if [ $# -eq 0 ]
  78. then
  79. if [ -n "$VERBOSE" ]
  80. then
  81. printf '%s -Goverlap=prism %s | gvmap %s | neato -n2 %s\n' "$LAYOUT" "$FLAGS1" "$FLAGS2" "$FLAGS3" >&2
  82. fi
  83. $LAYOUT -Goverlap=prism $FLAGS1 | gvmap $FLAGS2 | neato -n2 $FLAGS3
  84. else
  85. while [ $# -gt 0 ]
  86. do
  87. if [ -f "$1" ]
  88. then
  89. if [ -n "$VERBOSE" ]
  90. then
  91. printf '%s -Goverlap=prism %s %s | gvmap %s | neato -n2 %s\n' "$LAYOUT" "$FLAGS1" "$1" "$FLAGS2" "$FLAGS3" >&2
  92. fi
  93. $LAYOUT -Goverlap=prism $FLAGS1 $1 | gvmap $FLAGS2 | neato -n2 $FLAGS3
  94. else
  95. printf 'gvmap: unknown input file %s - ignored\n' "$1" >&2
  96. fi
  97. shift
  98. done
  99. fi