Implement 'delete' command for interface removal and refactor 'add' command

This commit is contained in:
tuna2134
2026-06-30 12:22:53 +09:00
parent ff7f594a84
commit ebe437161b
5 changed files with 52 additions and 10 deletions

View File

@@ -15,24 +15,24 @@ var addLocalIP net.IP
var addRemoteIP net.IP
var addLinkName string
var addCmd = &cobra.Command{
var AddCmd = &cobra.Command{
Use: "add",
Short: "Ethernet over IPv6(RFC3378)カーネルのクライアント",
RunE: runE,
RunE: AddrunE,
}
func runE(cmd *cobra.Command, args []string) error {
func AddrunE(cmd *cobra.Command, args []string) error {
err := utils.AddDev(addDevName, addLocalIP, addRemoteIP, addLinkName)
return err
}
func init() {
addCmd.Flags().StringVarP(&addDevName, "devname", "d", "eip0", "作成するNICの名")
addCmd.Flags().IPVarP(&addLocalIP, "local", "l", nil, "自分の終端アドレス")
addCmd.Flags().IPVarP(&addRemoteIP, "remote", "r", nil, "相手の終端アドレス")
addCmd.Flags().StringVarP(&addLinkName, "link", "L", "", "アンダーレイのNIC名")
AddCmd.Flags().StringVarP(&addDevName, "devname", "d", "eip0", "作成するNICの名")
AddCmd.Flags().IPVarP(&addLocalIP, "local", "l", nil, "自分の終端アドレス")
AddCmd.Flags().IPVarP(&addRemoteIP, "remote", "r", nil, "相手の終端アドレス")
AddCmd.Flags().StringVarP(&addLinkName, "link", "L", "", "アンダーレイのNIC名")
rootCmd.AddCommand(addCmd)
rootCmd.AddCommand(AddCmd)
}

25
cmd/delete.go Normal file
View File

@@ -0,0 +1,25 @@
/*
Copyright © 2026 Masato Kikuchi <m-kikuchi@neody.ad.jp>
*/
package cmd
import (
"git.neody.ad.jp/tuna2134/etherip-client/utils"
"github.com/spf13/cobra"
)
var DelDevVar string
var deleteCmd = &cobra.Command{
Use: "delete",
Short: "Delete iface",
Long: `Delete iface`,
RunE: func(cmd *cobra.Command, args []string) error {
return utils.DelDev(DelDevVar)
},
}
func init() {
deleteCmd.Flags().StringVarP(&DelDevVar, "devname", "d", "eip0", "削除対象のNICの名前")
rootCmd.AddCommand(deleteCmd)
}

View File

@@ -1,16 +1,21 @@
/*
Copyright © 2026 Masato Kikuchi <m-kikuchi@neody.ad.jp>
*/
package cmd
import (
"os"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "etherip-client",
Short: "Ethernet over IPv6(RFC3378)カーネルのクライアント",
Short: "EtherIP RFC3378 Client",
Long: `Ethernet over IPv6`,
}
func Execute() {