]> CyberLeo.Net >> Repos - CDN/j.git/blob - ipcc
j: remove stale jipc pipe on startup, if jipc is not running
[CDN/j.git] / ipcc
1 #!/bin/sh -e
2
3 jipc="/tmp/jipc"
4
5 [ -p "${jipc}" ] || { echo "ipcc: ${jipc} not found; ipcd not running?" >&2; exit 1; }
6
7 pebkac() {
8   echo "Usage: ipcc <command> <argument>"
9   echo "Or:    ee <argument>"
10   echo "Or:    ff <argument>"
11   echo ""
12   echo "Command can be one of 'editor' or 'browser'; argument should be a single file."
13   echo "Simplified wrappers 'ee' for editor and 'ff' for browser can also be used."
14   exit 1
15 }
16
17 do_editor() {
18   while [ "${1}" ]
19   do
20     arg="$(readlink -f "${1}")"
21     echo "editor ${arg}" > "${jipc}"
22     shift
23   done
24 }
25
26 do_browser() {
27   while [ "${1}" ]
28   do
29     arg="${1}"
30     echo "${arg}" | grep -vq '://' && arg="$(readlink -f "${arg}")"
31     echo "browser ${arg}" > "${jipc}"
32     shift
33   done
34 }
35
36 do_gitk() {
37   [ "${*}" ] || set -- "$(pwd)"
38   while [ "${1}" ]
39   do
40     arg="$(readlink -f "${1}")"
41     echo "gitk ${arg}" > "${jipc}"
42     shift
43   done
44 }
45
46 do_gitka() {
47   [ "${*}" ] || set -- "$(pwd)"
48   while [ "${1}" ]
49   do
50     arg="$(readlink -f "${1}")"
51     echo "gitka ${arg}" > "${jipc}"
52     shift
53   done
54 }
55
56 case "$(basename "${0}")" in
57 ipcc) cmd="${1}"; shift ;;
58 ee)   cmd="editor" ;;
59 ff)   cmd="browser" ;;
60 gitk) cmd="gitk" ;;
61 gitka)cmd="gitka" ;;
62 *)    pebkac ;;
63 esac
64 arg="${1}"
65
66 case "${cmd}" in
67 editor|edit|ee) do_editor "${@}" ;;
68 browser|browse|ff) do_browser "${@}" ;;
69 gitk) do_gitk "${@}" ;;
70 gitka) do_gitka "${@}" ;;
71 *) pebkac ;;
72 esac