Add a --version flag

See: https://github.com/krallin/tini/issues/55
version-flag
Thomas Orozco 8 years ago
parent 9c00aea006
commit c9ff1b6917
  1. 9
      ci/run_build.sh
  2. 12
      src/tini.c

@ -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
@ -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

@ -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;
@ -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");
@ -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

Loading…
Cancel
Save