Documentation
¶
Index ¶
- Constants
- Variables
- func CreateSendToTCP(configDir string, port int, noCdr bool, nvim bool) (string, error)
- func GetProcessInfo(cdrOutput string) (int, string, int, error)
- func InstallDevcontainerTools(installDir string) (string, error)
- func InstallDownTools(installDir string) (string, error)
- func InstallRunTools(installDir string, nvim bool) (string, error)
- func InstallStartTools(services InstallerUseServices, installDir string) (string, string, error)
- func InstallStopTools(installDir string) (string, error)
- func InstallTemplatesTools(installDir string) (string, error)
- func InstallVim(installDir string, nvim bool, containerArch string) (string, error)
- func KillCdr(pid int) error
- func RunCdr(cdrPath string, configFileDir string) (int, int, error)
- func SelfUpdate(services InstallerUseServices) error
- type CdrOutput
- type DefaultInstallerUseServices
- type InstallerUseServices
- type ProgressWriter
- type Tool
Constants ¶
View Source
const CdrFileName = "clipboard-data-receiver"
View Source
const CdrFileNameForMac = "clipboard-data-receiver"
Variables ¶
View Source
var CDR = func(services InstallerUseServices) 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) (string, error) { latestTagName, err := services.GetLatestReleaseFromGitHub("mikoto2000", "clipboard-data-receiver") if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil }, installFunc: func(downloadFunc func(downloadURL string, destPath string) error, downloadURL string, filePath string, containerArch string) (string, error) { return simpleInstall(downloadFunc, downloadURL, filePath) }, DownloadFunc: download, } }
clipboard-data-receiver のツール情報
View Source
var DEVCONTAINER = func(services InstallerUseServices) Tool { return Tool{ FileName: devcontainerFileName, CalculateDownloadURL: func(_ string) (string, error) { latestTagName, err := services.GetLatestReleaseFromGitHub("mikoto2000", "devcontainers-cli") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(downloadURLDevcontainersCliPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil }, installFunc: func(downloadFunc func(downloadURL string, destPath string) error, downloadURL string, filePath string, containerArch string) (string, error) { return simpleInstall(downloadFunc, downloadURL, filePath) }, DownloadFunc: download, } }
devcontainer/cli のツール情報
View Source
var NVIM = func(service InstallerUseServices) Tool { return Tool{ FileName: "nvim", CalculateDownloadURL: func(containerArch string) (string, error) { if containerArch == "amd64" || containerArch == "x86_64" { latestTagName, err := util.GetLatestReleaseFromGitHub("neovim", "neovim") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(nvimAppImageDownloadURLPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil } else if containerArch == "arm64" || containerArch == "aarch64" { latestTagName, err := util.GetLatestReleaseFromGitHub("mikoto2000", "vim-static") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(nvimArmStaticDownloadURLPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil } else { return "", errors.New("Unknown Architecture") } }, installFunc: func(downloadFunc func(downloadURL string, destPath string) error, downloadURL string, filePath string, containerArch string) (string, error) { return simpleInstall(downloadFunc, downloadURL, filePath) }, DownloadFunc: download, } }
NeoVim のツール情報
View Source
var PortForwarderContainer = func(services InstallerUseServices) Tool { return Tool{ FileName: "port-forwarder-container", CalculateDownloadURL: func(containerArch string) (string, error) { latestTagName, err := services.GetLatestReleaseFromGitHub("mikoto2000", "port-forwarder") if err != nil { return "", err } pattern := "pattern" var tmpl *template.Template if containerArch == "amd64" { tmpl, err = template.New(pattern).Parse(downloadURLPortForwarderContainerAmd64Pattern) } else if containerArch == "aarch64" { tmpl, err = template.New(pattern).Parse(downloadURLPortForwarderContainerArm64Pattern) } else { return "", errors.New("port-forwarder-container download error: Unknown arch") } if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { panic(err) } return downloadURL.String(), nil }, installFunc: func(downloadFunc func(downloadURL string, destPath string) error, downloadURL string, filePath string, containerArch string) (string, error) { return simpleInstall(downloadFunc, downloadURL, filePath) }, DownloadFunc: download, } }
コンテナ上で起動する port-forwarder のツール情報
View Source
var VIM = func(service InstallerUseServices) Tool { return Tool{ FileName: "vim", CalculateDownloadURL: func(containerArch string) (string, error) { if containerArch == "amd64" || containerArch == "x86_64" { if runtime.GOOS != "darwin" { latestTagName, err := service.GetLatestReleaseFromGitHub("vim", "vim-appimage") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(vimAppImageDownloadURLPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil } else { latestTagName, err := service.GetLatestReleaseFromGitHub("vim", "vim-appimage") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(vimX64StaticDownloadURLPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil } } else if containerArch == "arm64" || containerArch == "aarch64" { latestTagName, err := service.GetLatestReleaseFromGitHub("mikoto2000", "vim-static") if err != nil { return "", err } pattern := "pattern" tmpl, err := template.New(pattern).Parse(vimArmStaticDownloadURLPattern) if err != nil { return "", err } tmplParams := map[string]string{"TagName": latestTagName} var downloadURL strings.Builder err = tmpl.Execute(&downloadURL, tmplParams) if err != nil { return "", err } return downloadURL.String(), nil } else { return "", errors.New("Unknown Architecture") } }, installFunc: func(downloadFunc func(downloadURL string, destPath string) error, downloadURL string, filePath string, containerArch string) (string, error) { return simpleInstall(downloadFunc, downloadURL, filePath) }, DownloadFunc: download, } }
Vim のツール情報
Functions ¶
func CreateSendToTCP ¶
func InstallDevcontainerTools ¶
devcontainer サブコマンド用のツールインストール
func InstallDownTools ¶
Down サブコマンド用のツールインストール
func InstallRunTools ¶
run サブコマンド用のツールインストール
func InstallStartTools ¶
func InstallStartTools(services InstallerUseServices, installDir string) (string, string, error)
start サブコマンド用のツールインストール 戻り値は、 devcontainerPath, cdrPath, error
func InstallStopTools ¶
Stop サブコマンド用のツールインストール
func InstallTemplatesTools ¶
Templates サブコマンド用のツールインストール
func InstallVim ¶ added in v3.3.0
func SelfUpdate ¶
func SelfUpdate(services InstallerUseServices) 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 ¶
type DefaultInstallerUseServices ¶ added in v3.4.3
type DefaultInstallerUseServices struct{}
func (DefaultInstallerUseServices) Download ¶ added in v3.4.3
func (s DefaultInstallerUseServices) Download(downloadURL string, destPath string) error
func (DefaultInstallerUseServices) GetLatestReleaseFromGitHub ¶ added in v3.4.3
func (s DefaultInstallerUseServices) GetLatestReleaseFromGitHub(owner string, repository string) (string, error)
type InstallerUseServices ¶ added in v3.4.3
type ProgressWriter ¶
進捗表示用構造体
Click to show internal directories.
Click to hide internal directories.