Skip to content

Commit

Permalink
Merge pull request #5573 from kjzz/fix/help
Browse files Browse the repository at this point in the history
fix `ipfs help` bug #5557
  • Loading branch information
Stebalien authored Nov 6, 2018
2 parents a6a7892 + 53fe9c9 commit 5716926
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 18 deletions.
23 changes: 18 additions & 5 deletions cmd/ipfs/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,26 @@ func mainRet() int {
intrh, ctx := setupInterruptHandler(ctx)
defer intrh.Close()

// Handle `ipfs help'
if len(os.Args) == 2 {
if os.Args[1] == "help" {
os.Args[1] = "-h"
} else if os.Args[1] == "--version" {
// Handle `ipfs version` or `ipfs help`
if len(os.Args) > 1 {
// Handle `ipfs --version'
if os.Args[1] == "--version" {
os.Args[1] = "version"
}

//Handle `ipfs help` and `ipfs help <sub-command>`
if os.Args[1] == "help" {
if len(os.Args) > 2 {
os.Args = append(os.Args[:1], os.Args[2:]...)
// Handle `ipfs help --help`
// append `--help`,when the command is not `ipfs help --help`
if os.Args[1] != "--help" {
os.Args = append(os.Args, "--help")
}
} else {
os.Args[1] = "--help"
}
}
}

// output depends on executable name passed in os.Args
Expand Down
25 changes: 15 additions & 10 deletions test/sharness/t0010-basic-commands.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,6 @@ test_expect_success "ipfs version --all has all required fields" '
grep "Golang version" version_all.txt
'

test_expect_success "ipfs help succeeds" '
ipfs help >help.txt
'

test_expect_success "ipfs help output looks good" '
egrep -i "^Usage" help.txt >/dev/null &&
egrep "ipfs <command>" help.txt >/dev/null ||
test_fsh cat help.txt
'

test_expect_success "'ipfs commands' succeeds" '
ipfs commands >commands.txt
'
Expand All @@ -61,6 +51,21 @@ test_expect_success "'ipfs commands' output looks good" '
grep "ipfs update" commands.txt
'

test_expect_success "All sub-commands accept help" '
echo 0 > fail
while read -r cmd
do
${cmd:0:4} help ${cmd:5} >/dev/null ||
{ echo "$cmd doesnt accept --help"; echo 1 > fail; }
echo stuff | $cmd --help >/dev/null ||
{ echo "$cmd doesnt accept --help when using stdin"; echo 1 > fail; }
done <commands.txt
if [ $(cat fail) = 1 ]; then
return 1
fi
'

test_expect_success "All commands accept --help" '
echo 0 > fail
while read -r cmd
Expand Down
33 changes: 30 additions & 3 deletions test/sharness/t0040-add-and-cat.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,21 @@ test_description="Test add and cat commands"

test_add_cat_file() {
test_expect_success "ipfs add --help works" '
ipfs add --help 2> add_help_err > /dev/null
ipfs add --help 2> add_help_err1 > /dev/null
'

test_expect_success "stdin reading message doesnt show up" '
test_expect_code 1 grep "ipfs: Reading from" add_help_err &&
test_expect_code 1 grep "send Ctrl-d to stop." add_help_err
test_expect_code 1 grep "ipfs: Reading from" add_help_err1 &&
test_expect_code 1 grep "send Ctrl-d to stop." add_help_err1
'

test_expect_success "ipfs help add works" '
ipfs help add 2> add_help_err2 > /dev/null
'

test_expect_success "stdin reading message doesnt show up" '
test_expect_code 1 grep "ipfs: Reading from" add_help_err2 &&
test_expect_code 1 grep "send Ctrl-d to stop." add_help_err2
'

test_expect_success "ipfs add succeeds" '
Expand Down Expand Up @@ -431,6 +440,15 @@ test_expect_success "'ipfs add --help' output looks good" '
test_fsh cat actual
'

test_expect_success "'ipfs help add' succeeds" '
ipfs help add >actual
'

test_expect_success "'ipfs help add' output looks good" '
egrep "ipfs add.*<path>" actual >/dev/null ||
test_fsh cat actual
'

test_expect_success "'ipfs cat --help' succeeds" '
ipfs cat --help >actual
'
Expand All @@ -440,6 +458,15 @@ test_expect_success "'ipfs cat --help' output looks good" '
test_fsh cat actual
'

test_expect_success "'ipfs help cat' succeeds" '
ipfs help cat >actual
'

test_expect_success "'ipfs help cat' output looks good" '
egrep "ipfs cat.*<ipfs-path>" actual >/dev/null ||
test_fsh cat actual
'

test_add_cat_file

test_expect_success "ipfs cat succeeds with stdin opened (issue #1141)" '
Expand Down

0 comments on commit 5716926

Please sign in to comment.