1
0
mirror of https://github.com/rancher/os.git synced 2025-08-13 20:36:36 +00:00

Add docker Bash completion for other consoles

This commit is contained in:
hailong 2019-01-02 02:56:27 +00:00 committed by niusmallnan
parent 8cdf21d03a
commit 4d834140d0
3 changed files with 26 additions and 5 deletions

View File

@ -144,6 +144,12 @@ func consoleInitFunc() error {
{"/usr/share/ros/os-release", "/etc/os-release"}, {"/usr/share/ros/os-release", "/etc/os-release"},
} }
if _, err := os.Stat(dockerCompletionFile); err == nil {
baseSymlink = append(baseSymlink, symlink{
dockerCompletionFile, dockerCompletionLinkFile,
})
}
if cfg.Rancher.Console == "default" { if cfg.Rancher.Console == "default" {
// add iptables symlinks for default console // add iptables symlinks for default console
baseSymlink = append(baseSymlink, []symlink{ baseSymlink = append(baseSymlink, []symlink{

View File

@ -16,9 +16,11 @@ import (
) )
const ( const (
dockerConf = "/var/lib/rancher/conf/docker" dockerConf = "/var/lib/rancher/conf/docker"
dockerDone = "/run/docker-done" dockerDone = "/run/docker-done"
dockerLog = "/var/log/docker.log" dockerLog = "/var/log/docker.log"
dockerCompletionLinkFile = "/usr/share/bash-completion/completions/docker"
dockerCompletionFile = "/var/lib/rancher/engine/completion"
) )
func dockerInitAction(c *cli.Context) error { func dockerInitAction(c *cli.Context) error {
@ -30,6 +32,12 @@ func dockerInitAction(c *cli.Context) error {
time.Sleep(200 * time.Millisecond) time.Sleep(200 * time.Millisecond)
} }
if _, err := os.Stat(dockerCompletionFile); err != nil {
if _, err := os.Readlink(dockerCompletionLinkFile); err == nil {
syscall.Unlink(dockerCompletionLinkFile)
}
}
dockerBin := "" dockerBin := ""
dockerPaths := []string{ dockerPaths := []string{
"/usr/bin", "/usr/bin",

View File

@ -26,6 +26,7 @@ const (
dockerPidFile = "/var/run/docker.pid" dockerPidFile = "/var/run/docker.pid"
sourceDirectory = "/engine" sourceDirectory = "/engine"
destDirectory = "/var/lib/rancher/engine" destDirectory = "/var/lib/rancher/engine"
dockerCompletionFName = "completion"
) )
var ( var (
@ -94,8 +95,14 @@ func copyBinaries(source, dest string) error {
if err = out.Close(); err != nil { if err = out.Close(); err != nil {
return err return err
} }
if err := os.Chmod(destFile, 0751); err != nil { if file.Name() == dockerCompletionFName {
return err if err := os.Chmod(destFile, 0644); err != nil {
return err
}
} else {
if err := os.Chmod(destFile, 0751); err != nil {
return err
}
} }
} }