From 2733990aed3003e92899701caa7eebee45c2980f Mon Sep 17 00:00:00 2001 From: xieguigang Date: Wed, 23 Jan 2019 13:48:22 +0800 Subject: [PATCH] move namespace --- Docker/Arguments/Image.vb | 51 ++++++++++++++++++++++++++++ Docker/Arguments/Mount.vb | 25 ++++++++++++++ Docker/Captures/Models.vb | 4 ++- Docker/Commands.vb | 1 + Docker/Docker.vbproj | 3 +- Docker/Image.vb | 71 --------------------------------------- Docker/test/Module1.vb | 3 +- 7 files changed, 84 insertions(+), 74 deletions(-) create mode 100644 Docker/Arguments/Image.vb create mode 100644 Docker/Arguments/Mount.vb delete mode 100644 Docker/Image.vb diff --git a/Docker/Arguments/Image.vb b/Docker/Arguments/Image.vb new file mode 100644 index 0000000..0caca05 --- /dev/null +++ b/Docker/Arguments/Image.vb @@ -0,0 +1,51 @@ +Imports System.Runtime.CompilerServices + +Namespace Arguments + + ''' + ''' Docker image name + ''' + Public Class Image + + Public Property Publisher As String + Public Property Package As String + + Public Shared Function ParseEntry(text As String) As Image + With text.Trim.Split("/"c) + Dim user$, name$ + + If .Length = 1 Then + user = Nothing + name = .ElementAt(0) + Else + user = .ElementAt(0) + name = .ElementAt(1) + End If + + Return New Image With { + .Package = name, + .Publisher = user + } + End With + End Function + + + Public Overrides Function ToString() As String + If Publisher.StringEmpty Then + Return Package + Else + Return $"{Publisher}/{Package}" + End If + End Function + + + Public Shared Widening Operator CType(repo As String) As Image + Return ParseEntry(repo) + End Operator + + + Public Shared Narrowing Operator CType(img As Image) As String + Return img.ToString + End Operator + End Class +End Namespace \ No newline at end of file diff --git a/Docker/Arguments/Mount.vb b/Docker/Arguments/Mount.vb new file mode 100644 index 0000000..cc6c960 --- /dev/null +++ b/Docker/Arguments/Mount.vb @@ -0,0 +1,25 @@ +Namespace Arguments + + ''' + ''' 共享文件夹 + ''' + Public Class Mount + + ''' + ''' 宿主机内的本地文件夹全路径 + ''' + Public Property local As String + ''' + ''' 虚拟机内的文件路径,共享文件夹将会在虚拟机内被挂载到这个路径上面 + ''' + Public Property virtual As String + + ''' + ''' ``local:virtual`` + ''' + ''' + Public Overrides Function ToString() As String + Return $"{local.GetDirectoryFullPath}:{virtual}" + End Function + End Class +End Namespace \ No newline at end of file diff --git a/Docker/Captures/Models.vb b/Docker/Captures/Models.vb index f17629c..80531dd 100644 --- a/Docker/Captures/Models.vb +++ b/Docker/Captures/Models.vb @@ -1,4 +1,6 @@ -Namespace Captures +Imports Darwinism.Docker.Arguments + +Namespace Captures Public Structure Search Dim NAME As Image diff --git a/Docker/Commands.vb b/Docker/Commands.vb index 9a6ac1c..cf7a1dd 100644 --- a/Docker/Commands.vb +++ b/Docker/Commands.vb @@ -1,4 +1,5 @@ Imports System.Text +Imports Darwinism.Docker.Arguments Imports Darwinism.Docker.Captures ''' diff --git a/Docker/Docker.vbproj b/Docker/Docker.vbproj index de94ede..e913c9f 100644 --- a/Docker/Docker.vbproj +++ b/Docker/Docker.vbproj @@ -93,9 +93,10 @@ + - + diff --git a/Docker/Image.vb b/Docker/Image.vb deleted file mode 100644 index e1858dd..0000000 --- a/Docker/Image.vb +++ /dev/null @@ -1,71 +0,0 @@ -Imports System.Runtime.CompilerServices - -''' -''' Docker image name -''' -Public Class Image - - Public Property Publisher As String - Public Property Package As String - - Public Shared Function ParseEntry(text As String) As Image - With text.Trim.Split("/"c) - Dim user$, name$ - - If .Length = 1 Then - user = Nothing - name = .ElementAt(0) - Else - user = .ElementAt(0) - name = .ElementAt(1) - End If - - Return New Image With { - .Package = name, - .Publisher = user - } - End With - End Function - - - Public Overrides Function ToString() As String - If Publisher.StringEmpty Then - Return Package - Else - Return $"{Publisher}/{Package}" - End If - End Function - - - Public Shared Widening Operator CType(repo As String) As Image - Return ParseEntry(repo) - End Operator - - - Public Shared Narrowing Operator CType(img As Image) As String - Return img.ToString - End Operator -End Class - -''' -''' 共享文件夹 -''' -Public Class Mount - - ''' - ''' 宿主机内的本地文件夹全路径 - ''' - Public Property local As String - ''' - ''' 虚拟机内的文件路径,共享文件夹将会在虚拟机内被挂载到这个路径上面 - ''' - Public Property virtual As String - - ''' - ''' ``local:virtual`` - ''' - ''' - Public Overrides Function ToString() As String - Return $"{local.GetDirectoryFullPath}:{virtual}" - End Function -End Class \ No newline at end of file diff --git a/Docker/test/Module1.vb b/Docker/test/Module1.vb index 2de1d00..72b9213 100644 --- a/Docker/test/Module1.vb +++ b/Docker/test/Module1.vb @@ -1,4 +1,5 @@ Imports Darwinism +Imports Darwinism.Docker.Arguments Imports Microsoft.VisualBasic.Serialization.JSON Module Module1 @@ -14,7 +15,7 @@ Module Module1 Call Console.WriteLine(Docker.Run("centos", "echo ""hello world""")) - Call Console.WriteLine(Docker.Run("centos", "ls -l /mnt/ntfs", New Docker.Mount With {.local = "D:\test", .virtual = "/mnt/ntfs"})) + Call Console.WriteLine(Docker.Run("centos", "ls -l /mnt/ntfs", New Mount With {.local = "D:\test", .virtual = "/mnt/ntfs"})) For Each line In Docker.CommandHistory Call Console.WriteLine(line)