Skip to content

Commit c2a372f

Browse files
committed
refactor: Let 'do-plumbing-clone' to accept single 'package' argument
1 parent 55118b3 commit c2a372f

File tree

4 files changed

+24
-31
lines changed

4 files changed

+24
-31
lines changed

pkg/lib/commands/do-install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ do-install() {
2121
IFS=':' read -r site user repository ref <<< "$REPLY"
2222

2323
log.info "Installing '$repoSpec'"
24-
do-plumbing-clone "$use_ssh" "$site" "$user" "$repository" $ref
24+
do-plumbing-clone "$use_ssh" "$site" "$user/$repository" $ref
2525
do-plumbing-deps "$user/$repository"
2626
do-plumbing-link-bins "$user/$repository"
2727
do-plumbing-link-completions "$user/$repository"

pkg/lib/commands/do-plumbing-clone.sh

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,14 @@
11
# shellcheck shell=bash
22

3-
# @summary Clones a package from a site, but doesn't install it
4-
# Usage: bpm plumbing-clone <use_ssh> <site> <package> [<ref>]
5-
63
do-plumbing-clone() {
7-
local useSsh="$1"
4+
local use_ssh="$1"
85
local site="$2"
9-
local user="$3"
10-
local repository="$4"
6+
local package="$3"
117
local ref="$5"
128

13-
ensure.nonZero 'useSsh' "$useSsh"
9+
ensure.nonZero 'use_ssh' "$use_ssh"
1410
ensure.nonZero 'site' "$site"
15-
ensure.nonZero 'user' "$user"
16-
ensure.nonZero 'repository' "$repository"
17-
18-
local package="$user/$repository"
11+
ensure.nonZero 'package' "$package"
1912

2013
if [ -e "$BPM_PACKAGES_PATH/$package" ]; then
2114
log.error "Package '$package' is already present"
@@ -32,7 +25,7 @@ do-plumbing-clone() {
3225
gitArgs+=(-b "$ref")
3326
fi
3427

35-
if [ "$useSsh" = "true" ]; then
28+
if [ "$use_ssh" = "true" ]; then
3629
gitArgs+=("git@$site:$package.git")
3730
else
3831
gitArgs+=("https://$site/$package.git")

tests/do-install.bats

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ load 'util/init.sh'
2626

2727
assert_success
2828
assert_line -n 0 -p "Installing 'username/package'"
29-
assert_line -n 1 'do-plumbing-clone false github.com username package'
29+
assert_line -n 1 'do-plumbing-clone false github.com username/package'
3030
assert_line -n 2 'do-plumbing-deps username/package'
3131
assert_line -n 3 'do-plumbing-link-bins username/package'
3232
assert_line -n 4 'do-plumbing-link-completions username/package'
@@ -44,13 +44,13 @@ load 'util/init.sh'
4444

4545
assert_success
4646
assert_line -n 0 -p "Installing 'username/package'"
47-
assert_line -n 1 'do-plumbing-clone false github.com username package'
47+
assert_line -n 1 'do-plumbing-clone false github.com username/package'
4848
assert_line -n 2 'do-plumbing-deps username/package'
4949
assert_line -n 3 'do-plumbing-link-bins username/package'
5050
assert_line -n 4 'do-plumbing-link-completions username/package'
5151
assert_line -n 5 'do-plumbing-link-man username/package'
5252
assert_line -n 6 -p "Installing 'username2/package2'"
53-
assert_line -n 7 'do-plumbing-clone false github.com username2 package2'
53+
assert_line -n 7 'do-plumbing-clone false github.com username2/package2'
5454
assert_line -n 8 'do-plumbing-deps username2/package2'
5555
assert_line -n 9 'do-plumbing-link-bins username2/package2'
5656
assert_line -n 10 'do-plumbing-link-completions username2/package2'
@@ -68,7 +68,7 @@ load 'util/init.sh'
6868
run do-install https://gitlab.com/username/package
6969

7070
assert_success
71-
assert_line "do-plumbing-clone false gitlab.com username package"
71+
assert_line "do-plumbing-clone false gitlab.com username/package"
7272
}
7373

7474
@test "uses longhand (http) site to clone from, if specified" {
@@ -81,7 +81,7 @@ load 'util/init.sh'
8181
run do-install http://gitlab.com/username/package
8282

8383
assert_success
84-
assert_line "do-plumbing-clone false gitlab.com username package"
84+
assert_line "do-plumbing-clone false gitlab.com username/package"
8585
}
8686

8787
@test "uses shorthand site to clone from, if specified" {
@@ -94,7 +94,7 @@ load 'util/init.sh'
9494
run do-install site/username/package
9595

9696
assert_success
97-
assert_line "do-plumbing-clone false site username package"
97+
assert_line "do-plumbing-clone false site username/package"
9898
}
9999

100100
@test "uses GitHub as default site, if not specified" {
@@ -107,7 +107,7 @@ load 'util/init.sh'
107107
run do-install username/package
108108

109109
assert_success
110-
assert_line "do-plumbing-clone false github.com username package"
110+
assert_line "do-plumbing-clone false github.com username/package"
111111
}
112112

113113
@test "uses ssh protocol, when specified" {
@@ -120,7 +120,7 @@ load 'util/init.sh'
120120
run do-install --ssh username/package
121121

122122
assert_success
123-
assert_line "do-plumbing-clone true github.com username package"
123+
assert_line "do-plumbing-clone true github.com username/package"
124124
}
125125

126126
@test "uses custom version, when specified" {
@@ -133,7 +133,7 @@ load 'util/init.sh'
133133
run do-install username/package@v1.2.3
134134

135135
assert_success
136-
assert_line "do-plumbing-clone false github.com username package v1.2.3"
136+
assert_line "do-plumbing-clone false github.com username/package v1.2.3"
137137
}
138138

139139
@test "does not use custom version, when not specified" {
@@ -146,5 +146,5 @@ load 'util/init.sh'
146146
run do-install username/package@
147147

148148
assert_success
149-
assert_line "do-plumbing-clone false github.com username package"
149+
assert_line "do-plumbing-clone false github.com username/package"
150150
}

tests/do-plumbing-clone.bats

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ load 'util/init.sh'
55
@test "install a specific version" {
66
test_util.mock_command git
77

8-
run do-plumbing-clone false site username package version
8+
run do-plumbing-clone false site username/package version
99

1010
assert_success
1111
assert_output "git clone --recursive --depth=1 -b version https://site/username/package.git $BPM_PACKAGES_PATH/username/package"
@@ -14,7 +14,7 @@ load 'util/init.sh'
1414
@test "does nothing if package is already present" {
1515
mkdir -p "$BPM_PACKAGES_PATH/username/package"
1616

17-
run do-plumbing-clone false github.com username package
17+
run do-plumbing-clone false github.com username/package
1818

1919
assert_success
2020
assert_output -e "Package 'username/package' is already present"
@@ -24,7 +24,7 @@ load 'util/init.sh'
2424
mkdir -p "$BPM_PACKAGES_PATH/username"
2525
touch "$BPM_PACKAGES_PATH/username/package"
2626

27-
run do-plumbing-clone false github.com username package
27+
run do-plumbing-clone false github.com username/package
2828

2929
assert_success
3030
assert_output -e "Package 'username/package' is already present"
@@ -33,7 +33,7 @@ load 'util/init.sh'
3333
@test "using a different site" {
3434
test_util.mock_command git
3535

36-
run do-plumbing-clone false site username package
36+
run do-plumbing-clone false site username/package
3737

3838
assert_success
3939
assert_output "git clone --recursive --depth=1 https://site/username/package.git $BPM_PACKAGES_PATH/username/package"
@@ -46,7 +46,7 @@ load 'util/init.sh'
4646
export BPM_FULL_CLONE=
4747
test_util.mock_command git
4848

49-
run do-plumbing-clone false github.com username package
49+
run do-plumbing-clone false github.com username/package
5050

5151
assert_success
5252
assert_output "git clone --recursive https://github.com/username/package.git $BPM_PACKAGES_PATH/username/package"
@@ -56,7 +56,7 @@ load 'util/init.sh'
5656
export BPM_FULL_CLONE=true
5757
test_util.mock_command git
5858

59-
run do-plumbing-clone false github.com username package
59+
run do-plumbing-clone false github.com username/package
6060

6161
assert_success
6262
assert_output "git clone --recursive https://github.com/username/package.git $BPM_PACKAGES_PATH/username/package"
@@ -68,7 +68,7 @@ load 'util/init.sh'
6868
export BPM_FULL_CLONE=false
6969
test_util.mock_command git
7070

71-
run do-plumbing-clone false github.com username package
71+
run do-plumbing-clone false github.com username/package
7272

7373
assert_success
7474
assert_output "git clone --recursive https://github.com/username/package.git $BPM_PACKAGES_PATH/username/package"
@@ -77,7 +77,7 @@ load 'util/init.sh'
7777
@test "using ssh protocol" {
7878
test_util.mock_command git
7979

80-
run do-plumbing-clone true site username package
80+
run do-plumbing-clone true site username/package
8181

8282
assert_success
8383
assert_output "git clone --recursive --depth=1 git@site:username/package.git $BPM_PACKAGES_PATH/username/package"

0 commit comments

Comments
 (0)