cpt

Carbs Packaging Tools
git clone git://git.carbslinux.org/cpt
Log | Files | Refs | README | LICENSE

commit e05dfae94610c80645107031ec5d0945e637508c
parent 78da0c8e3f42bd3874e4c948f842d34449340fd5
Author: Cem Keylan <cem@ckyln.com>
Date:   Sat, 31 Oct 2020 15:44:10 +0300

cpt-fork: allow specifying full path

Diffstat:
Mcontrib/cpt-fork | 22++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/contrib/cpt-fork b/contrib/cpt-fork @@ -2,17 +2,23 @@ # 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" ] && { - printf '\033[1;31m!> \033[m%s\n' \ - "$pkg already exists on the current directory. You can set" \ - "CPT_FORCE=1 to ignore this." - exit 1 - } - cpt-search "$pkg" >/dev/null + [ "$CPT_FORCE" != 1 ] && [ -d "${pkg##*/}" ] && + die "$pkg already exists on the current directory." \ + "You can set CPT_FORCE=1 to ignore this." - cp -r "$(cpt-search --single "$pkg")" . + 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.