diff --git a/Dockerfile b/Dockerfile index e0bb422..dd97ea9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -119,11 +119,9 @@ SHELL ["/bin/sh", "-exc"] COPY --from=builder /output/ / # Add default skeleton configuration files -ADD skel/* /etc/ -RUN chmod 1777 /tmp - -ADD https://gist.githubusercontent.com/frebib/2b4ba154a9d62b31b1edcb50477e7f01/raw/647c3f8ee4dc7e325cd41f40fe47735f75a7f607/ppwd.sh /usr/bin/ppwd -RUN chmod 755 /usr/bin/ppwd +COPY skel/ / +RUN chmod 1777 /tmp && \ + chmod 775 /usr/bin/* ENV ENV="/etc/profile" ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/bin diff --git a/skel/group b/skel/etc/group similarity index 100% rename from skel/group rename to skel/etc/group diff --git a/skel/passwd b/skel/etc/passwd similarity index 100% rename from skel/passwd rename to skel/etc/passwd diff --git a/skel/profile b/skel/etc/profile similarity index 100% rename from skel/profile rename to skel/etc/profile diff --git a/skel/shadow b/skel/etc/shadow similarity index 100% rename from skel/shadow rename to skel/etc/shadow diff --git a/skel/usr/bin/ppwd b/skel/usr/bin/ppwd new file mode 100644 index 0000000..7b52105 --- /dev/null +++ b/skel/usr/bin/ppwd @@ -0,0 +1,19 @@ +#!/bin/sh +set -e -o pipefail + +dir="$(echo -n "${1:-$PWD}" | sed "s|$HOME|~|")" + +if [ "$dir" = '~' -o "$dir" = '/' ]; then + echo "$dir" + exit 0 +fi + +parts="$(echo "$dir" | tr '/' '\n' | sed '$d')" +last="$(echo "$dir" | tr '/' '\n' | tail -n 1)" + +for d in "$parts"; do + out="$out$(echo "$d" | sed -E '/^\./s/^(.{2}).*/\1/;/^[^\.]/s/^(.{1}).*/\1/')\n" +done + +echo -en "$out" | tr '\n' '/' +echo "$last" \ No newline at end of file