#!/bin/bash
# set -ex

exec=""

if [ $# -eq  0 ]; then
    echo "usage: $0 -n <name>"
    exit 1
fi

for i in $*; do
    case $i in
        -n)
            name=$2; shift 2;;
        --exec)
            exec="exec"; shift;;
    esac
done

if [ -z "$exec" ]; then
    exec /usr/bin/lxc-unshare -s MOUNT -- $0 -n $name --exec $*
fi

if [ -z "$name" ]; then
    echo "usage: $0 -n <name>"
    exit 1
fi

cgroups=$(mount -l -t cgroup)
cgroup_path=""

for i in "$cgroups"; do

    cgroup_name=$(echo $i | awk ' { print $1 } ')
    cgroup_path=$(echo $i | awk ' { print $3 } ')

    if [ "$cgroup_name" == "lxc" ]; then
        break;
    fi

done

if [ -z "$cgroup_path" ]; then
    echo "no cgroup mount point found"
    exit 1
fi

pid=$(head -1 $cgroup_path/$name/tasks)

if [ -z "$pid" ]; then
    echo "no process found for '$name'"
    exit 1
fi

mount --bind /proc/$pid/net /proc/$$/net && \
    exec netstat $*
