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

CLI exit code on error #239

Closed
sstarcher opened this issue Oct 26, 2016 · 4 comments · Fixed by #304
Closed

CLI exit code on error #239

sstarcher opened this issue Oct 26, 2016 · 4 comments · Fixed by #304
Labels
kind/bug Categorizes issue or PR as related to a bug.
Milestone

Comments

@sstarcher
Copy link

When running kompose -f file for any invalid file or any invalid command I would expect a shell return code of non-zero.

@kadel
Copy link
Member

kadel commented Oct 27, 2016

Thank for reporting it. You are right we have to fix that

@kadel kadel added the kind/bug Categorizes issue or PR as related to a bug. label Oct 27, 2016
@cdrage
Copy link
Member

cdrage commented Oct 28, 2016

@kadel @sstarcher I think this is normal behavior (with regards to not doing anything). The problem is that there's no default behaviour when just using ./kompose

Even I just realized that there was the "Incorrect Usage." message on the top, go figure!

github.com/kubernetes-incubator/kompose  master ✗                                                                            23h39m ⚑  
▶ kompose -f foobar        
NAME:
   kompose - A tool helping Docker Compose users move to Kubernetes.

USAGE:
   kompose [global options] command [command options] [arguments...]

VERSION:
   0.1.0 (8227684)

AUTHOR(S):
   Skippbox Kompose Contributors <https://github.com/skippbox/kompose> 

COMMANDS:
    convert     Convert Docker Compose file (e.g. docker-compose.yml) to Kubernetes objects
    up          Deploy your Dockerized application to Kubernetes (default: creating Kubernetes deployment and service)
    down        Delete instantiated services/deployments from kubernetes

GLOBAL OPTIONS:
   --file, -f "docker-compose.yml"      Specify an alternative compose file (default: docker-compose.yml) [$COMPOSE_FILE]
   --help, -h                           show help
   --generate-bash-completion
   --version, -v                        print the version


github.com/kubernetes-incubator/kompose  master ✗                                                                            23h39m ⚑  
▶ echo $?
0

Like what @sstarcher mentioned, it's suppose to be 1 :) I'll work up a patch for this.

@cdrage
Copy link
Member

cdrage commented Oct 28, 2016

I'm trying to figure where to fix this with the most recent work in urfave/cli#399

@sebgoa sebgoa added this to the v0.2.1 release milestone Nov 1, 2016
@sebgoa sebgoa added the v0.2.1 label Nov 1, 2016
@cdrage
Copy link
Member

cdrage commented Dec 16, 2016

Fixed in #304 which exits correctly with a proper error code.

github.com/kubernetes-incubator/kompose  switch-to-cobra ✔                                                                                                                                                                                                                   0m  
▶ ./kompose convert
ERRO[0000] Failed to find the compose file: docker-compose.yml 
FATA[0000] Failed to load compose file: open docker-compose.yml: no such file or directory 

github.com/kubernetes-incubator/kompose  switch-to-cobra ✔                                                                                                                                                                                                                  4m  ⍉
▶ echo $?
1

cdrage added a commit to cdrage/kompose that referenced this issue Dec 21, 2016
There's A LOT happening in this commit, so here's an outline:

First off, urfave/cli has been removed in favour of spf13/cobra. With
this, comes changes to the formatting as well as the help page for
Kompose.

Upon converting, I noticed a CLI flag was NOT appearing for OpenShift.
Specifically, --deploymentconfig. This has been added with a note
that says it is OpenShift only.

Exit codes have been fixed. If the conversion / down / up fails for
any reason, Kompose will exit with Code 1.

--verbose as well as --suppress-warnings can now be set at the
same time.

app_test.go in the cli directory has been moved to pkg/transformer
to better reflect the testing coverage.

version.go has been removed and converted to it's own CLI command in
conjuction with (most) Go software. A new CLI command has been
created. kompose version

--dab isn't a conventional way for short-form CLI paramters. This
has been shortened to -b for bundle.

CLI flags consisting of only two/three letters have been removed due to
it being unconventional for CLI. For example, --dc was removed in preference
for --deploymentconfig

--replicas has been added as an option when using kompose down or
kompose up. This has been added as previously in app.go the
replica amount was hard-coded as 1.

Differentiating names have been used for flags. For example,
persistent flags use the name Global (ex. GlobalOut). Command-specific
flags have their own names (ex. UpOpt).

Closes kubernetes#239 kubernetes#253
cdrage added a commit to cdrage/kompose that referenced this issue Dec 21, 2016
There's A LOT happening in this commit, so here's an outline:

First off, urfave/cli has been removed in favour of spf13/cobra. With
this, comes changes to the formatting as well as the help page for
Kompose.

Upon converting, I noticed a CLI flag was NOT appearing for OpenShift.
Specifically, --deploymentconfig. This has been added with a note
that says it is OpenShift only.

Exit codes have been fixed. If the conversion / down / up fails for
any reason, Kompose will exit with Code 1.

--verbose as well as --suppress-warnings can now be set at the
same time.

app_test.go in the cli directory has been moved to pkg/transformer
to better reflect the testing coverage.

version.go has been removed and converted to it's own CLI command in
conjuction with (most) Go software. A new CLI command has been
created. kompose version

--dab isn't a conventional way for short-form CLI paramters. This
has been shortened to -b for bundle.

CLI flags consisting of only two/three letters have been removed due to
it being unconventional for CLI. For example, --dc was removed in preference
for --deploymentconfig

--replicas has been added as an option when using kompose down or
kompose up. This has been added as previously in app.go the
replica amount was hard-coded as 1.

Differentiating names have been used for flags. For example,
persistent flags use the name Global (ex. GlobalOut). Command-specific
flags have their own names (ex. UpOpt).

Closes kubernetes#239 kubernetes#253
cdrage added a commit to cdrage/kompose that referenced this issue Dec 22, 2016
There's A LOT happening in this commit, so here's an outline:

First off, urfave/cli has been removed in favour of spf13/cobra. With
this, comes changes to the formatting as well as the help page for
Kompose.

Upon converting, I noticed a CLI flag was NOT appearing for OpenShift.
Specifically, --deploymentconfig. This has been added with a note
that says it is OpenShift only.

Exit codes have been fixed. If the conversion / down / up fails for
any reason, Kompose will exit with Code 1.

--verbose as well as --suppress-warnings can now be set at the
same time.

app_test.go in the cli directory has been moved to pkg/transformer
to better reflect the testing coverage.

version.go has been removed and converted to it's own CLI command in
conjuction with (most) Go software. A new CLI command has been
created. kompose version

--dab isn't a conventional way for short-form CLI paramters. This
has been shortened to -b for bundle.

CLI flags consisting of only two/three letters have been removed due to
it being unconventional for CLI. For example, --dc was removed in preference
for --deploymentconfig

--replicas has been added as an option when using kompose down or
kompose up. This has been added as previously in app.go the
replica amount was hard-coded as 1.

Differentiating names have been used for flags. For example,
persistent flags use the name Global (ex. GlobalOut). Command-specific
flags have their own names (ex. UpOpt).

Closes kubernetes#239 kubernetes#253
cdrage added a commit to cdrage/kompose that referenced this issue Dec 22, 2016
There's A LOT happening in this commit, so here's an outline:

First off, urfave/cli has been removed in favour of spf13/cobra. With
this, comes changes to the formatting as well as the help page for
Kompose.

Upon converting, I noticed a CLI flag was NOT appearing for OpenShift.
Specifically, --deploymentconfig. This has been added with a note
that says it is OpenShift only.

Exit codes have been fixed. If the conversion / down / up fails for
any reason, Kompose will exit with Code 1.

--verbose as well as --suppress-warnings can now be set at the
same time.

app_test.go in the cli directory has been moved to pkg/transformer
to better reflect the testing coverage.

version.go has been removed and converted to it's own CLI command in
conjuction with (most) Go software. A new CLI command has been
created. kompose version

--dab isn't a conventional way for short-form CLI paramters. This
has been shortened to -b for bundle.

CLI flags consisting of only two/three letters have been removed due to
it being unconventional for CLI. For example, --dc was removed in preference
for --deploymentconfig

--replicas has been added as an option when using kompose down or
kompose up. This has been added as previously in app.go the
replica amount was hard-coded as 1.

Differentiating names have been used for flags. For example,
persistent flags use the name Global (ex. GlobalOut). Command-specific
flags have their own names (ex. UpOpt).

Closes kubernetes#239 kubernetes#253
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants