Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix ipfs help bug #5557 #5573

Merged
merged 2 commits into from
Nov 6, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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