#!/bin/sh -ef # Fork a package to the current directory case "$1" in ''|--help|-h) printf '\033[1;33m-> \033[m%s\n' "usage: ${0##*/} [pkg...]" ; exit 0 ; esac die() { printf '\033[1;31m!> \033[m%s\n' "$@" >&2; exit 1;} for pkg; do [ "$CPT_FORCE" != 1 ] && [ -d "${pkg##*/}" ] && die "$pkg already exists on the current directory." \ "You can set CPT_FORCE=1 to ignore this." case "$pkg" in */*) [ -d "$pkg" ] || die "$pkg is not a directory" cp -r "$pkg" . pkg=${pkg##*/} ;; *) cpt-search "$pkg" >/dev/null cp -r "$(cpt-search --single "$pkg")" . esac # Sometimes forked packages are from the database and not from a repository. # We should remove the manifest in such a case. rm -f "$pkg/manifest" "$pkg/etcsums" printf 'forked package to %s\n' "$PWD/$pkg" done