// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2014 Christoph Hellwig.
 * All Rights Reserved.
 */

#include "command.h"
#include "input.h"
#include "init.h"
#include "io.h"

#ifndef AT_EMPTY_PATH
#define AT_EMPTY_PATH	0x1000
#endif

static cmdinfo_t flink_cmd;

static void
flink_help(void)
{
	printf(_(
"\n"
"link the open file descriptor to the supplied filename\n"
"\n"
"\n"));
}

static int
flink_f(
	int		argc,
	char		**argv)
{
	if (argc != 2)
		return command_usage(&flink_cmd);

	if (linkat(file->fd, "", AT_FDCWD, argv[1], AT_EMPTY_PATH) < 0) {
		perror("flink");
		return 0;
	}
	return 0;
}

void
flink_init(void)
{
	flink_cmd.name = "flink";
	flink_cmd.cfunc = flink_f;
	flink_cmd.argmin = 1;
	flink_cmd.argmax = 1;
	flink_cmd.flags = CMD_NOMAP_OK | CMD_FOREIGN_OK | CMD_FLAG_ONESHOT;
	flink_cmd.args = _("filename");
	flink_cmd.oneline =
		_("link the open file descriptor to the supplied filename");
	flink_cmd.help = flink_help;

	add_command(&flink_cmd);
}
