summaryrefslogtreecommitdiff
path: root/pkg/server/sleep.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server/sleep.go')
-rw-r--r--pkg/server/sleep.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/pkg/server/sleep.go b/pkg/server/sleep.go
new file mode 100644
index 0000000..53c85ea
--- /dev/null
+++ b/pkg/server/sleep.go
@@ -0,0 +1,32 @@
+package server
+
+import (
+ "strconv"
+ "time"
+ "fmt"
+)
+
+const maxSleep = 10
+
+func init() {
+ setHandler(sleep, "sleep")
+}
+
+func sleep(r *request) {
+ if len(r.args) == 0 {
+ return
+ }
+
+ n, err := strconv.Atoi(r.args[0])
+ if err != nil || n < 0 {
+ fmt.Fprintf(r.out, "invalid time interval '%s'", r.args[0])
+ return
+ }
+
+ if n > maxSleep {
+ fmt.Fprintf(r.out, "no more than %d", maxSleep)
+ return
+ }
+
+ time.Sleep(time.Duration(n) * time.Second)
+}