From e17cf292111916a04e2d6d6f09a7608e6423c4ea Mon Sep 17 00:00:00 2001 From: eryajf Date: Sat, 23 Mar 2024 18:41:32 +0800 Subject: [PATCH 1/3] fix: script command typo --- scripts/install.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/install.sh b/scripts/install.sh index e5e200c..06768a5 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -45,7 +45,6 @@ main() { local os_arch="$(uname -m)" local version="v0.1.1" local download_url="https://gvc.1710717.xyz/proxy/https://github.com/gvcgo/version-manager/releases/download/" - local osType="linux" if [ "$os_type" = "Darwin" ]; then osType="darwin" @@ -68,8 +67,8 @@ main() { curl -o "$filename" "$url" - ehco "Installing..." - + echo "Installing..." + if [ -s "./$filename" ]; then unzip "./$filename" chmod +x "./vm" From 85984ecddd4e6f8e0dcff20ca214e0393501368a Mon Sep 17 00:00:00 2001 From: eryajf Date: Sat, 23 Mar 2024 21:53:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E7=9A=84=E7=89=88=E6=9C=AC=E5=8F=B7=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/installer/search.go | 4 +++ pkgs/utils/sort.go | 55 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 pkgs/utils/sort.go diff --git a/pkgs/installer/search.go b/pkgs/installer/search.go index 20f266a..f4815a0 100644 --- a/pkgs/installer/search.go +++ b/pkgs/installer/search.go @@ -5,6 +5,7 @@ import ( "github.com/gvcgo/goutils/pkgs/gtea/gprint" "github.com/gvcgo/goutils/pkgs/gtea/gtable" + "github.com/gvcgo/version-manager/pkgs/utils" "github.com/gvcgo/version-manager/pkgs/versions" ) @@ -42,6 +43,9 @@ func (s *Searcher) Search(appName string) { return } + // Sort versions. + utils.SortVersions(vl) + columns := []gtable.Column{ {Title: fmt.Sprintf("%v available versions", appName), Width: 150}, } diff --git a/pkgs/utils/sort.go b/pkgs/utils/sort.go new file mode 100644 index 0000000..5080ff9 --- /dev/null +++ b/pkgs/utils/sort.go @@ -0,0 +1,55 @@ +package utils + +import ( + "errors" + "sort" + "strconv" + "strings" +) + +// Version represents a version number. +type Version struct { + Major, Minor, Patch int +} + +// ParseVersion parses a version string into a Version struct. +func ParseVersion(version string) (Version, error) { + parts := strings.Split(version, ".") + if len(parts) != 3 { + return Version{}, errors.New("invalid version format") + } + major, err := strconv.Atoi(parts[0]) + if err != nil { + return Version{}, err + } + minor, err := strconv.Atoi(parts[1]) + if err != nil { + return Version{}, err + } + patch, err := strconv.Atoi(parts[2]) + if err != nil { + return Version{}, err + } + return Version{Major: major, Minor: minor, Patch: patch}, nil +} + +// SortVersions sorts a slice of version strings in descending order. +func SortVersions(versions []string) { + sort.Slice(versions, func(i, j int) bool { + v1, err := ParseVersion(versions[i]) + if err != nil { + return false + } + v2, err := ParseVersion(versions[j]) + if err != nil { + return false + } + if v1.Major != v2.Major { + return v1.Major > v2.Major + } + if v1.Minor != v2.Minor { + return v1.Minor > v2.Minor + } + return v1.Patch > v2.Patch + }) +} From 653d8a6a5722c25a7ed300a4db114e257433ec32 Mon Sep 17 00:00:00 2001 From: eryajf Date: Sat, 23 Mar 2024 22:00:23 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=B8=80=E4=B8=AA=E6=96=87=E6=A1=88?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/cmd.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index 1947850..db8a002 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -174,7 +174,7 @@ func (c *Cli) initiate() { Aliases: []string{"L"}, GroupID: GroupID, Short: "Shows installed versions for an app.", - Long: "Example: vm l go.", + Long: "Example: vm L go.", Run: func(cmd *cobra.Command, args []string) { if len(args) == 0 { cmd.Help()