Skip to content

Commit 91a66f4

Browse files
committed
Move Signal to its own module
1 parent 9d8ce9a commit 91a66f4

File tree

3 files changed

+139
-86
lines changed

3 files changed

+139
-86
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
},
1414
"dependencies": {
1515
"purescript-prelude": "~0.1.3",
16-
"purescript-functions": "~0.1.0"
16+
"purescript-functions": "~0.1.0",
17+
"purescript-maybe": "~0.3.5"
1718
},
1819
"devDependencies": {
1920
"purescript-console": "~0.1.1"

src/Data/Posix.purs

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -3,91 +3,6 @@ module Data.Posix where
33
import Prelude (Show, show, (<>), Ord, compare, Eq, eq)
44
import Data.Function (on)
55

6-
data Signal
7-
= SIGABRT
8-
| SIGALRM
9-
| SIGBUS
10-
| SIGCHLD
11-
| SIGCLD
12-
| SIGCONT
13-
| SIGEMT
14-
| SIGFPE
15-
| SIGHUP
16-
| SIGILL
17-
| SIGINFO
18-
| SIGINT
19-
| SIGIO
20-
| SIGIOT
21-
| SIGKILL
22-
| SIGLOST
23-
| SIGPIPE
24-
| SIGPOLL
25-
| SIGPROF
26-
| SIGPWR
27-
| SIGQUIT
28-
| SIGSEGV
29-
| SIGSTKFLT
30-
| SIGSTOP
31-
| SIGSYS
32-
| SIGTERM
33-
| SIGTRAP
34-
| SIGTSTP
35-
| SIGTTIN
36-
| SIGTTOU
37-
| SIGUNUSED
38-
| SIGURG
39-
| SIGUSR1
40-
| SIGUSR2
41-
| SIGVTALRM
42-
| SIGWINCH
43-
| SIGXCPU
44-
| SIGXFSZ
45-
46-
-- | Convert a Signal to a String. Suitable for Node.js APIs.
47-
toString :: Signal -> String
48-
toString s = case s of
49-
SIGABRT -> "SIGABRT"
50-
SIGALRM -> "SIGALRM"
51-
SIGBUS -> "SIGBUS"
52-
SIGCHLD -> "SIGCHLD"
53-
SIGCLD -> "SIGCLD"
54-
SIGCONT -> "SIGCONT"
55-
SIGEMT -> "SIGEMT"
56-
SIGFPE -> "SIGFPE"
57-
SIGHUP -> "SIGHUP"
58-
SIGILL -> "SIGILL"
59-
SIGINFO -> "SIGINFO"
60-
SIGINT -> "SIGINT"
61-
SIGIO -> "SIGIO"
62-
SIGIOT -> "SIGIOT"
63-
SIGKILL -> "SIGKILL"
64-
SIGLOST -> "SIGLOST"
65-
SIGPIPE -> "SIGPIPE"
66-
SIGPOLL -> "SIGPOLL"
67-
SIGPROF -> "SIGPROF"
68-
SIGPWR -> "SIGPWR"
69-
SIGQUIT -> "SIGQUIT"
70-
SIGSEGV -> "SIGSEGV"
71-
SIGSTKFLT -> "SIGSTKFLT"
72-
SIGSTOP -> "SIGSTOP"
73-
SIGSYS -> "SIGSYS"
74-
SIGTERM -> "SIGTERM"
75-
SIGTRAP -> "SIGTRAP"
76-
SIGTSTP -> "SIGTSTP"
77-
SIGTTIN -> "SIGTTIN"
78-
SIGTTOU -> "SIGTTOU"
79-
SIGUNUSED -> "SIGUNUSED"
80-
SIGURG -> "SIGURG"
81-
SIGUSR1 -> "SIGUSR1"
82-
SIGUSR2 -> "SIGUSR2"
83-
SIGVTALRM -> "SIGVTALRM"
84-
SIGWINCH -> "SIGWINCH"
85-
SIGXCPU -> "SIGXCPU"
86-
SIGXFSZ -> "SIGXFSZ"
87-
88-
instance showSignal :: Show Signal where
89-
show = toString
90-
916
-- | A process ID.
927
newtype Pid = Pid Int
938

src/Data/Posix/Signal.purs

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
module Data.Posix.Signal where
2+
3+
import Prelude (Show)
4+
import Data.Maybe (Maybe(Just, Nothing))
5+
6+
data Signal
7+
= SIGABRT
8+
| SIGALRM
9+
| SIGBUS
10+
| SIGCHLD
11+
| SIGCLD
12+
| SIGCONT
13+
| SIGEMT
14+
| SIGFPE
15+
| SIGHUP
16+
| SIGILL
17+
| SIGINFO
18+
| SIGINT
19+
| SIGIO
20+
| SIGIOT
21+
| SIGKILL
22+
| SIGLOST
23+
| SIGPIPE
24+
| SIGPOLL
25+
| SIGPROF
26+
| SIGPWR
27+
| SIGQUIT
28+
| SIGSEGV
29+
| SIGSTKFLT
30+
| SIGSTOP
31+
| SIGSYS
32+
| SIGTERM
33+
| SIGTRAP
34+
| SIGTSTP
35+
| SIGTTIN
36+
| SIGTTOU
37+
| SIGUNUSED
38+
| SIGURG
39+
| SIGUSR1
40+
| SIGUSR2
41+
| SIGVTALRM
42+
| SIGWINCH
43+
| SIGXCPU
44+
| SIGXFSZ
45+
46+
-- | Convert a Signal to a String. Suitable for Node.js APIs.
47+
toString :: Signal -> String
48+
toString s = case s of
49+
SIGABRT -> "SIGABRT"
50+
SIGALRM -> "SIGALRM"
51+
SIGBUS -> "SIGBUS"
52+
SIGCHLD -> "SIGCHLD"
53+
SIGCLD -> "SIGCLD"
54+
SIGCONT -> "SIGCONT"
55+
SIGEMT -> "SIGEMT"
56+
SIGFPE -> "SIGFPE"
57+
SIGHUP -> "SIGHUP"
58+
SIGILL -> "SIGILL"
59+
SIGINFO -> "SIGINFO"
60+
SIGINT -> "SIGINT"
61+
SIGIO -> "SIGIO"
62+
SIGIOT -> "SIGIOT"
63+
SIGKILL -> "SIGKILL"
64+
SIGLOST -> "SIGLOST"
65+
SIGPIPE -> "SIGPIPE"
66+
SIGPOLL -> "SIGPOLL"
67+
SIGPROF -> "SIGPROF"
68+
SIGPWR -> "SIGPWR"
69+
SIGQUIT -> "SIGQUIT"
70+
SIGSEGV -> "SIGSEGV"
71+
SIGSTKFLT -> "SIGSTKFLT"
72+
SIGSTOP -> "SIGSTOP"
73+
SIGSYS -> "SIGSYS"
74+
SIGTERM -> "SIGTERM"
75+
SIGTRAP -> "SIGTRAP"
76+
SIGTSTP -> "SIGTSTP"
77+
SIGTTIN -> "SIGTTIN"
78+
SIGTTOU -> "SIGTTOU"
79+
SIGUNUSED -> "SIGUNUSED"
80+
SIGURG -> "SIGURG"
81+
SIGUSR1 -> "SIGUSR1"
82+
SIGUSR2 -> "SIGUSR2"
83+
SIGVTALRM -> "SIGVTALRM"
84+
SIGWINCH -> "SIGWINCH"
85+
SIGXCPU -> "SIGXCPU"
86+
SIGXFSZ -> "SIGXFSZ"
87+
88+
-- | Try to parse a Signal from a String. Suitable for use with Node.js APIs.
89+
-- | This function is a partial inverse of `toString`; in code, that means, for
90+
-- | all `sig :: Signal`:
91+
-- |
92+
-- | `fromString (toString sig) == Just sig`
93+
-- |
94+
fromString :: String -> Maybe Signal
95+
fromString s = case s of
96+
"SIGABRT" -> Just SIGABRT
97+
"SIGALRM" -> Just SIGALRM
98+
"SIGBUS" -> Just SIGBUS
99+
"SIGCHLD" -> Just SIGCHLD
100+
"SIGCLD" -> Just SIGCLD
101+
"SIGCONT" -> Just SIGCONT
102+
"SIGEMT" -> Just SIGEMT
103+
"SIGFPE" -> Just SIGFPE
104+
"SIGHUP" -> Just SIGHUP
105+
"SIGILL" -> Just SIGILL
106+
"SIGINFO" -> Just SIGINFO
107+
"SIGINT" -> Just SIGINT
108+
"SIGIO" -> Just SIGIO
109+
"SIGIOT" -> Just SIGIOT
110+
"SIGKILL" -> Just SIGKILL
111+
"SIGLOST" -> Just SIGLOST
112+
"SIGPIPE" -> Just SIGPIPE
113+
"SIGPOLL" -> Just SIGPOLL
114+
"SIGPROF" -> Just SIGPROF
115+
"SIGPWR" -> Just SIGPWR
116+
"SIGQUIT" -> Just SIGQUIT
117+
"SIGSEGV" -> Just SIGSEGV
118+
"SIGSTKFLT" -> Just SIGSTKFLT
119+
"SIGSTOP" -> Just SIGSTOP
120+
"SIGSYS" -> Just SIGSYS
121+
"SIGTERM" -> Just SIGTERM
122+
"SIGTRAP" -> Just SIGTRAP
123+
"SIGTSTP" -> Just SIGTSTP
124+
"SIGTTIN" -> Just SIGTTIN
125+
"SIGTTOU" -> Just SIGTTOU
126+
"SIGUNUSED" -> Just SIGUNUSED
127+
"SIGURG" -> Just SIGURG
128+
"SIGUSR1" -> Just SIGUSR1
129+
"SIGUSR2" -> Just SIGUSR2
130+
"SIGVTALRM" -> Just SIGVTALRM
131+
"SIGWINCH" -> Just SIGWINCH
132+
"SIGXCPU" -> Just SIGXCPU
133+
"SIGXFSZ" -> Just SIGXFSZ
134+
_ -> Nothing
135+
136+
instance showSignal :: Show Signal where
137+
show = toString

0 commit comments

Comments
 (0)