aboutsummaryrefslogtreecommitdiffstats
path: root/emacs/.emacs.d/scripts/find-php-class
blob: 4268dcfaf3f30bd5bffabba71ec5badfb39e480d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/usr/bin/env bash
# ;; #!/usr/bin/env -S scsh -e main -o srfi-1 -s
# ;; !#

# ;; (define (main args)
# ;;   (let* ((class-name (cadr args))
# ;;          (file-names
# ;;           (run/strings (find "."
# ;;                              -path "./cdk.out" -prune -o
# ;;                              -type f
# ;;                              -name ,(string-append class-name ".php")
# ;;                              -exec grep "^namespace" "{}" ";")
# ;;                        (> 2 "/dev/null"))))
# ;;     (format #t "~s"
# ;;             (delete-duplicates
# ;;              (map (lambda (n)
# ;;                     (string-append
# ;;                      (match:substring
# ;;                       (regexp-search (rx "namespace " (submatch (+ any)) ";") n)
# ;;                       1)
# ;;                      "\\"
# ;;                      class-name))
# ;;                   file-names)))))

main() {
    local classname=$1

    find . \( \
             -path "./cdk.out" \
             -o -path "./punt/tmp" \
             -o -path "./punt/vendor" \
             -o -path "./filament/storage/larastan/cache" \
             -o -path "./filament/vendor" \
             -o -path "./chanced/tmp" \
             -o -path "./chanced/node_modules" \
             -o -path "./chanced/.phpunit.cache" \
             -o -path "./.git" \
             -o -path "./chanced/storage" \
         \) -prune \
         -o -type f -name "${classname}.php" \
         -exec grep '^namespace' '{}' \; \
        | awk "{ print substr(\$0, 11, length(\$0) - 11) \"\\\\${classname}\" }"
    # for f in "$(git ls-files | grep "${classname}.php")"; do
    #     grep '^namespace' "$f" | awk '{ print substr($0, 11, length($0) - 11) }'
    # done
}

main "$@"