XMPP reverse proxy and outgoing proxy
https://github.com/moparisthebest/xmpp-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
1.6 KiB
79 lines
1.6 KiB
#!/bin/bash |
|
threads="$1" |
|
|
|
set -euo pipefail |
|
|
|
# if we have access to nproc, divide that by 2, otherwise use 1 thread by default |
|
[ "$threads" == "" ] && threads=$(($(nproc || echo 2) / 2)) |
|
|
|
echo "threads: $threads" |
|
|
|
export RUSTFLAGS=-Awarnings |
|
|
|
show() { |
|
local -a results=() |
|
let idx=$2 |
|
for (( j = 0; j < $1; j++ )); do |
|
if (( idx % 2 )); then results=("${results[@]}" "${list[$j]}"); fi |
|
let idx\>\>=1 |
|
done |
|
echo "${results[@]}" |
|
} |
|
|
|
perm_lines() { |
|
list=($@) |
|
let n=${#list[@]} |
|
for (( i = 1; i < 2**n; i++ )); do |
|
show $n $i |
|
done |
|
} |
|
|
|
perms() { |
|
perm_lines "$@" | tr ' ' ',' | sort -u |
|
} |
|
|
|
perms_optional() { |
|
perm_lines "$@" | tr ' ' ',' | sort -u | sed 's/^/,/' |
|
} |
|
|
|
all_features() { |
|
for optional in "" $(perms_optional logging systemd) |
|
do |
|
for proto in $(perms tls quic websocket) |
|
do |
|
for direction in $(perms c2s-incoming c2s-outgoing s2s-incoming s2s-outgoing) |
|
do |
|
for ca_roots in tls-ca-roots-native tls-ca-roots-bundled |
|
do |
|
echo $direction,$proto,$ca_roots$optional |
|
done |
|
done |
|
done |
|
done |
|
|
|
for optional in "" $(perms_optional logging systemd) |
|
do |
|
for proto in $(perms tls quic websocket) |
|
do |
|
echo c2s-incoming,$proto$optional |
|
done |
|
done |
|
} |
|
|
|
echo_cargo() { |
|
set -euo pipefail |
|
#echo cargo run "$@" -- -v |
|
#cargo run "$@" -- -v |
|
echo cargo check "$@" |
|
cargo check "$@" |
|
} |
|
|
|
#all_features | sort -u | wc -l; exit 0 |
|
|
|
export -f echo_cargo |
|
|
|
echo_cargo |
|
|
|
all_features | sort | xargs -n1 --max-procs=$threads bash -c 'echo_cargo --no-default-features --features "$@" || exit 255' _ |
|
|
|
echo good!
|
|
|