Skip to content

Commit

Permalink
Merge pull request #58 from krallin/version-flag
Browse files Browse the repository at this point in the history
Add a --version flag
  • Loading branch information
krallin authored Nov 3, 2016
2 parents 9c00aea + 99b7ab7 commit a88563e
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 5 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ project (tini C)

# Config
set (tini_VERSION_MAJOR 0)
set (tini_VERSION_MINOR 11)
set (tini_VERSION_MINOR 12)
set (tini_VERSION_PATCH 0)

# Build options
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ In Docker, you will want to use an entrypoint so you don't have to remember
to manually invoke Tini:

# Add Tini
ENV TINI_VERSION v0.11.0
ENV TINI_VERSION v0.12.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini
ENTRYPOINT ["/tini", "--"]
Expand All @@ -63,7 +63,7 @@ The `tini` and `tini-static` binaries are signed using the key `595E85A6B1B4779E
You can verify their signatures using `gpg` (which you may install using
your package manager):

ENV TINI_VERSION v0.11.0
ENV TINI_VERSION v0.12.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini.asc /tini.asc
RUN gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 595E85A6B1B4779EA4DAAEC70B588DFF0527A9B7 \
Expand Down
9 changes: 9 additions & 0 deletions ci/run_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@ if [[ -n "${ARCH_NATIVE:=}" ]]; then

# Smoke tests (actual tests need Docker to run; they don't run within the CI environment)
for tini in "${BUILD_DIR}/tini" "${BUILD_DIR}/tini-static"; do
echo "Testing ${tini} --version"
"$tini" --version | grep "tini version"

if [[ -n "${NO_ARGS:-}" ]]; then
echo "Testing $tini with: true"
"${tini}" true
Expand All @@ -88,6 +91,12 @@ if [[ -n "${ARCH_NATIVE:=}" ]]; then
cp "$(which true)" "${BIN_TEST_DIR}/${bin}"
"$tini" "$bin"
done

echo "Testing $tini can run binary --version if args are given"
cp "$(which true)" "${BIN_TEST_DIR}/--version"
if "$tini" "--version" --foo | grep "tini version"; then
exit 1
fi
else
echo "Smoke test for $tini"
"${tini}" -h
Expand Down
12 changes: 10 additions & 2 deletions src/tini.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ typedef struct {
#define OPT_STRING "hvgl"
#endif

#define TINI_VERSION_STRING "tini version " TINI_VERSION TINI_GIT


#if HAS_SUBREAPER
static unsigned int subreaper = 0;
Expand Down Expand Up @@ -141,9 +143,8 @@ int spawn(const signal_configuration_t* const sigconf_ptr, char* const argv[], i
}
}


void print_usage(char* const name, FILE* const file) {
fprintf(file, "%s (version %s%s)\n", basename(name), TINI_VERSION, TINI_GIT);
fprintf(file, "%s (%s)\n", basename(name), TINI_VERSION_STRING);
fprintf(file, "Usage: %s [OPTIONS] PROGRAM -- [ARGS]\n\n", basename(name));
fprintf(file, "Execute a program under the supervision of a valid init process (%s)\n\n", basename(name));
fprintf(file, " -h: Show this help message and exit.\n");
Expand All @@ -164,6 +165,13 @@ void print_license(FILE* const file) {
int parse_args(const int argc, char* const argv[], char* (**child_args_ptr_ptr)[], int* const parse_fail_exitcode_ptr) {
char* name = argv[0];

// We handle --version if it's the *only* argument provided.
if (argc == 2 && strcmp("--version", argv[1]) == 0) {
*parse_fail_exitcode_ptr = 0;
fprintf(stdout, "%s\n", TINI_VERSION_STRING);
return 1;
}

#if TINI_NO_ARGS
*parse_fail_exitcode_ptr = 0;
#else
Expand Down

0 comments on commit a88563e

Please sign in to comment.