diff --git a/cmd/add.go b/cmd/add.go index 0b08793..7954a8f 100644 --- a/cmd/add.go +++ b/cmd/add.go @@ -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) } diff --git a/cmd/delete.go b/cmd/delete.go new file mode 100644 index 0000000..43f8678 --- /dev/null +++ b/cmd/delete.go @@ -0,0 +1,25 @@ +/* +Copyright © 2026 Masato Kikuchi +*/ +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) +} diff --git a/cmd/root.go b/cmd/root.go index 00b39db..6a874ea 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -1,16 +1,21 @@ /* Copyright © 2026 Masato Kikuchi + */ 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() { diff --git a/main.go b/main.go index 7843e5d..364a287 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,5 @@ /* -Copyright © 2026 Masato Kikuchi +Copyright © 2026 NAME HERE */ package main diff --git a/utils/delDev.go b/utils/delDev.go new file mode 100644 index 0000000..3365dc9 --- /dev/null +++ b/utils/delDev.go @@ -0,0 +1,12 @@ +package utils + +import "github.com/vishvananda/netlink" + +func DelDev(devname string) error { + link, err := netlink.LinkByName(devname) + if err != nil { + return err + } + netlink.LinkDel(link) + return nil +} \ No newline at end of file