text.sh.in 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. #!/bin/sh
  2. # $1 - action
  3. # $2 - type of archive
  4. # $3 - pager
  5. action=$1
  6. filetype=$2
  7. pager=$3
  8. get_unpacker() {
  9. filetype=$1
  10. case "${filetype}" in
  11. man.gz)
  12. unpacker="gzip -dc"
  13. ;;
  14. man.bz)
  15. unpacker="bzip -dc"
  16. ;;
  17. man.bz2)
  18. unpacker="bzip2 -dc"
  19. ;;
  20. man.lzma)
  21. unpacker="lzma -dc"
  22. ;;
  23. man.xz)
  24. unpacker="xz -dc"
  25. ;;
  26. esac
  27. echo ${unpacker}
  28. }
  29. do_view_action() {
  30. filetype=$1
  31. unpacker=`get_unpacker ${filetype}`
  32. case "${filetype}" in
  33. man)
  34. case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
  35. */log/*|*/logs/*)
  36. cat "${MC_EXT_FILENAME}"
  37. ;;
  38. *)
  39. { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | nroff @MAN_FLAGS@ @MANDOC@
  40. ;;
  41. esac
  42. ;;
  43. pod)
  44. pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
  45. ;;
  46. nroff.me)
  47. nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}"
  48. ;;
  49. nroff.ms)
  50. nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}"
  51. ;;
  52. man.gz|man.bz|man.bz2|man.lzma|man.xz)
  53. case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
  54. */log/*|*/logs/*)
  55. ${unpacker} "${MC_EXT_FILENAME}"
  56. ;;
  57. *)
  58. ${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
  59. ;;
  60. esac
  61. ;;
  62. *)
  63. ;;
  64. esac
  65. }
  66. do_open_action() {
  67. filetype=$1
  68. pager=$2
  69. unpacker=`get_unpacker ${filetype}`
  70. case "${filetype}" in
  71. info)
  72. info -f "${MC_EXT_FILENAME}"
  73. ;;
  74. man)
  75. case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
  76. */log/*|*/logs/*)
  77. cat "${MC_EXT_FILENAME}"
  78. ;;
  79. *)
  80. { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | \
  81. nroff @MAN_FLAGS@ @MANDOC@
  82. ;;
  83. esac | ${pager}
  84. ;;
  85. pod)
  86. pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@ | ${pager}
  87. ;;
  88. nroff.me)
  89. nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}" | ${pager}
  90. ;;
  91. nroff.ms)
  92. nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" | ${pager}
  93. ;;
  94. man.gz|man.bz|man.bz2|man.lzma|man.xz)
  95. case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
  96. */log/*|*/logs/*)
  97. ${unpacker} "${MC_EXT_FILENAME}"
  98. ;;
  99. *)
  100. ${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
  101. ;;
  102. esac | ${pager}
  103. ;;
  104. chm)
  105. if [ -n "$DISPLAY" ]; then
  106. which kchmviewer > /dev/null 2>&1 \
  107. && (kchmviewer "${MC_EXT_FILENAME}" &) \
  108. || (xchm "${MC_EXT_FILENAME}" &)
  109. else
  110. chm_http "${MC_EXT_FILENAME}" & elinks http://localhost:8080/index.html
  111. kill -INT %1
  112. fi
  113. ;;
  114. *)
  115. ;;
  116. esac
  117. }
  118. case "${action}" in
  119. view)
  120. do_view_action "${filetype}"
  121. ;;
  122. open)
  123. xdg-open "${MC_EXT_FILENAME}" 2>/dev/null || \
  124. do_open_action "${filetype}" "${pager}"
  125. ;;
  126. *)
  127. ;;
  128. esac