tools

package
v3.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2024 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const CdrFileName = "clipboard-data-receiver"
View Source
const CdrFileNameForMac = "clipboard-data-receiver"

Variables

This section is empty.

Functions

func CreateSendToTCP

func CreateSendToTCP(configDir string, port int) (string, error)

func GetProcessInfo

func GetProcessInfo(cdrOutput string) (int, string, int, error)

func InstallDevcontainerTools

func InstallDevcontainerTools(installDir string) (string, error)

devcontainer サブコマンド用のツールインストール

func InstallDownTools

func InstallDownTools(installDir string) (string, error)

Down サブコマンド用のツールインストール

func InstallRunTools

func InstallRunTools(installDir string, nvim bool) (string, string, error)

run サブコマンド用のツールインストール

func InstallStartTools

func InstallStartTools(installDir string, nvim bool) (string, string, string, error)

start サブコマンド用のツールインストール 戻り値は、 vimPath, devcontainerPath, cdrPath, error

func InstallStopTools

func InstallStopTools(installDir string) (string, error)

Stop サブコマンド用のツールインストール

func InstallTemplatesTools

func InstallTemplatesTools(installDir string) (string, error)

Templates サブコマンド用のツールインストール

func KillCdr

func KillCdr(pid int) error

func RunCdr

func RunCdr(cdrPath string, configFileDir string) (int, int, error)

clipboard-data-receiver を起動 pid ファイル、 port ファイルを configFileDir へ保存する。

func SelfUpdate

func SelfUpdate() error

SelfUpdate downloads the latest release of devcontainer.vim from GitHub and replaces the current binary

Types

type CdrOutput

type CdrOutput struct {
	Pid     int    `json:"pid"`
	Address string `json:"address"`
	Port    int    `json:"port"`
}

`clipboard-data-receiver` コマンドの標準出力スキーマ

Example:

{
  "pid": 1234,
  "address": "0.0.0.0",
  "port": 5678
}

func UnmarshalCdrOutput

func UnmarshalCdrOutput(data []byte) (CdrOutput, error)

type ProgressWriter

type ProgressWriter struct {
	Total   int64
	Current int64
}

進捗表示用構造体

func (*ProgressWriter) Write

func (p *ProgressWriter) Write(data []byte) (int, error)

type Tool

type Tool struct {
	FileName             string
	CalculateDownloadURL func() string
	// contains filtered or unexported fields
}

ツール情報

var CDR Tool = func() Tool {

	// WSL 上で実行されているかを判定し、
	// WSL 上で実行されているなら `.exe` をダウンロード
	var cdrFileName string
	var tmpl *template.Template
	var err error
	if util.IsWsl() {
		cdrFileName = cdrFileNameForWindows
		tmpl, err = template.New("ducp").Parse(downloadURLCdrPatternForWindows)
	} else if runtime.GOOS == "darwin" {
		cdrFileName = CdrFileNameForMac
		tmpl, err = template.New("ducp").Parse(downloadURLCdrPatternForMac)
	} else {
		cdrFileName = CdrFileName
		tmpl, err = template.New("ducp").Parse(downloadURLCdrPattern)
	}
	if err != nil {
		panic(err)
	}

	return Tool{
		FileName: cdrFileName,
		CalculateDownloadURL: func() string {
			latestTagName, err := util.GetLatestReleaseFromGitHub("mikoto2000", "clipboard-data-receiver")
			if err != nil {
				panic(err)
			}

			tmplParams := map[string]string{"TagName": latestTagName}
			var downloadURL strings.Builder
			err = tmpl.Execute(&downloadURL, tmplParams)
			if err != nil {
				panic(err)
			}
			return downloadURL.String()
		},
		installFunc: func(downloadURL string, filePath string) (string, error) {
			return simpleInstall(downloadURL, filePath)
		},
	}
}()

clipboard-data-receiver のツール情報

var DEVCONTAINER Tool = Tool{
	FileName: devcontainerFileName,
	CalculateDownloadURL: func() string {
		latestTagName, err := util.GetLatestReleaseFromGitHub("mikoto2000", "devcontainers-cli")
		if err != nil {
			panic(err)
		}

		pattern := "pattern"
		tmpl, err := template.New(pattern).Parse(downloadURLDevcontainersCliPattern)
		if err != nil {
			panic(err)
		}

		tmplParams := map[string]string{"TagName": latestTagName}
		var downloadURL strings.Builder
		err = tmpl.Execute(&downloadURL, tmplParams)
		if err != nil {
			panic(err)
		}
		return downloadURL.String()
	},
	// contains filtered or unexported fields
}

devcontainer/cli のツール情報

var NVIM Tool = Tool{
	FileName: "nvim",
	CalculateDownloadURL: func() string {
		latestTagName, err := util.GetLatestReleaseFromGitHub("neovim", "neovim")
		if err != nil {
			panic(err)
		}

		pattern := "pattern"
		tmpl, err := template.New(pattern).Parse(vimDownloadURLPattern)
		if err != nil {
			panic(err)
		}

		tmplParams := map[string]string{"TagName": latestTagName}
		var downloadURL strings.Builder
		err = tmpl.Execute(&downloadURL, tmplParams)
		if err != nil {
			panic(err)
		}
		return downloadURL.String()
	},
	// contains filtered or unexported fields
}

Vim のツール情報

var VIM Tool = Tool{
	FileName: "vim",
	CalculateDownloadURL: func() string {
		latestTagName, err := util.GetLatestReleaseFromGitHub("vim", "vim-appimage")
		if err != nil {
			panic(err)
		}

		pattern := "pattern"
		tmpl, err := template.New(pattern).Parse(vimDownloadURLPattern)
		if err != nil {
			panic(err)
		}

		tmplParams := map[string]string{"TagName": latestTagName}
		var downloadURL strings.Builder
		err = tmpl.Execute(&downloadURL, tmplParams)
		if err != nil {
			panic(err)
		}
		return downloadURL.String()
	},
	// contains filtered or unexported fields
}

Vim のツール情報

func (Tool) Install

func (t Tool) Install(installDir string, override bool) (string, error)

ツールのインストールを実行

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL