]> git.saurik.com Git - cycript.git/blame - Filter.sh
Merge adapter into callback, removing indirection.
[cycript.git] / Filter.sh
CommitLineData
7056e6ee 1#!/usr/bin/env bash
4de0686f 2
c15969fd 3# Cycript - Optimizing JavaScript Compiler/Runtime
c1d3e52e 4# Copyright (C) 2009-2015 Jay Freeman (saurik)
c15969fd 5
f95d2598 6# GNU Affero General Public License, Version 3 {{{
c15969fd 7#
f95d2598
JF
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU Affero General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
c15969fd 12#
f95d2598
JF
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
c15969fd 15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
f95d2598 16# GNU Affero General Public License for more details.
c15969fd 17#
f95d2598
JF
18# You should have received a copy of the GNU Affero General Public License
19# along with this program. If not, see <http://www.gnu.org/licenses/>.
c15969fd
JF
20# }}}
21
4de0686f
JF
22filters=("$@")
23
24while IFS= read -r line; do
be36c292
JF
25 if [[ ${line} = @if* ]]; then
26 line=${line#@if }
27 for name in "${filters[@]}"; do
28 if [[ ${line} = ${name}' '* ]]; then
29 echo "${line#${name} }"
30 fi
31 done
32 elif [[ ${line} = @begin* ]]; then
4de0686f
JF
33 set ${line}; shift
34 filter=
35 for name in "${filters[@]}"; do
36 for side in "$@"; do
37 if [[ ${name} == ${side} ]]; then
38 unset filter
39 fi
40 done
41 done
42 elif [[ ${line} = @end ]]; then
43 unset filter
44 elif [[ -z ${filter+@} ]]; then
45 echo "${line}"
46 fi
47done