changeset 427: |
8a312fa72406 |
parent: |
ab9e41953ae2
|
child: |
ea4f008ad13f |
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 07 Jun 2024 18:08:36 -0400 |
permissions: |
-rw-r--r-- |
description: |
rdb style fix |
1 ;;; rdb.lisp --- RocksDB client 4 (uiop:define-package :bin/rdb 5 (:use :cl :rdb :std :cli :log) 9 (rocksdb:load-rocksdb t) 10 (defopt rdb-help (print-help $cli)) 11 (defopt rdb-version (print-version $cli)) 12 (defopt rdb-log-level (when $val (setq *log-level* :debug))) 14 (defopt rdb-target-db (setq *rdb* (create-db (or $val "rdb") :open nil))) 16 ;; (defopt rdb-config (init-rdb-user-config (parse-file-opt $val))) 19 (set-opt *rdb* :error-if-exists t) 21 (println (rdb-name *rdb*))) 24 (let ((db-path (cli-opt-val (find-opt $cli "db")))) 25 (if (and (null db-path) (zerop $argc)) 26 (mapc (lambda (x) (println (format nil "~a ~a" (car x) (cdr x)))) 27 (hash-table-alist (backfill-opts (default-rdb-opts) :full t))) 28 (with-db (db (create-db db-path :open t)) 29 (println (hash-table-alist (backfill-opts db))) 30 (with-iter (it (create-iter db)) 31 (iter-seek-to-first it) 32 (loop while (iter-valid-p it) 35 (sb-ext:octets-to-string (iter-key it) :external-format '(:ascii :replacement #\_)) 38 finally (rocksdb::rocksdb-iter-destroy %it))))))) 42 (rdb-error "missing args: KEY VAL") 45 (insert-key db (pop $args) (pop $args))))) 49 (rdb-error "missing arg: KEY") 52 (when-let ((val (get-key db (car $args)))) 61 (let ((val (make-array 32 :element-type 'octet))) 62 (dotimes (i (if (zerop $argc) 1000 (parse-integer (car $args)))) 64 (let ((seed (random 32))) 66 (setf (aref val ii) (random 256)))) 69 (sb-ext:string-to-octets (string (gensym "foo"))) 76 :description "A simple helper for RocksDB." 78 (:name "level" :global t :description "set the log level" :thunk rdb-log-level) 79 (:name "help" :global t :description "print help" :thunk rdb-help) 80 (:name "version" :global t :description "print version" :thunk rdb-version) 81 (:name "db" :global t :description "target db" :thunk rdb-target-db :kind dir)) 83 (:name new :thunk rdb-new) 84 (:name show :thunk rdb-show) 85 (:name set :thunk rdb-set) 86 (:name get :thunk rdb-get) 87 (:name fuzz :thunk rdb-fuzz) 88 (:name destroy :thunk rdb-destroy))) 91 (let ((*log-level* :info)) 92 (with-cli (opts cmds args) $cli 93 ;; FIXME 2024-05-07: needs to be triggered explicitly - need to support 94 ;; running global opt thunks even when no arg present - macro key 95 (if (active-cmds $cli) 96 (prog2 (do-opt (find-opt $cli "db"))