完善功能 适配linux
parent
241d0f6214
commit
196daf571a
@ -0,0 +1,24 @@
|
|||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func clean(ctx *cli.Context) (err error) {
|
||||||
|
entries, err := ioutil.ReadDir(downloadsDir)
|
||||||
|
if err != nil {
|
||||||
|
return cli.Exit(errstring(err), 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range entries {
|
||||||
|
if err = os.RemoveAll(filepath.Join(downloadsDir, entries[i].Name())); err == nil {
|
||||||
|
fmt.Println("Remove", entries[i].Name())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/fatih/color"
|
||||||
|
"github.com/forget-the-bright/j/internal/pkg/config"
|
||||||
|
"github.com/k0kubun/go-ansi"
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func reverseArray(arr []*config.UrlItem) []*config.UrlItem {
|
||||||
|
for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
|
||||||
|
arr[i], arr[j] = arr[j], arr[i]
|
||||||
|
}
|
||||||
|
return arr
|
||||||
|
}
|
||||||
|
func mathVersionLength(version string) string {
|
||||||
|
if len(version) <= 1 {
|
||||||
|
return version + " "
|
||||||
|
}
|
||||||
|
return version
|
||||||
|
}
|
||||||
|
func listAll(*cli.Context) (err error) {
|
||||||
|
use_version := inuse(goroot)
|
||||||
|
out := ansi.NewAnsiStdout()
|
||||||
|
color.New(color.FgGreen).Fprintf(out, " %s\n", "version info")
|
||||||
|
for _, v := range reverseArray(config.Url_Items) {
|
||||||
|
if v.SimpleName == use_version { //strings.Contains(v.SimpleName, version)
|
||||||
|
color.New(color.FgGreen).Fprintf(out, "* %s\n", mathVersionLength(v.SimpleName)+" "+v.Expected)
|
||||||
|
} else {
|
||||||
|
fmt.Fprintf(out, " %s\n", mathVersionLength(v.SimpleName)+" "+v.Expected)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package cli
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/urfave/cli/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func uninstall(ctx *cli.Context) (err error) {
|
||||||
|
vname := ctx.Args().First()
|
||||||
|
if vname == "" {
|
||||||
|
return cli.ShowSubcommandHelp(ctx)
|
||||||
|
}
|
||||||
|
targetV := filepath.Join(versionsDir, vname)
|
||||||
|
|
||||||
|
if finfo, err := os.Stat(targetV); err != nil || !finfo.IsDir() {
|
||||||
|
return cli.Exit(fmt.Sprintf("[j] %q version is not installed", vname), 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = os.RemoveAll(targetV); err != nil {
|
||||||
|
return cli.Exit(wrapstring(fmt.Sprintf("Uninstall failed: %s", err.Error())), 1)
|
||||||
|
}
|
||||||
|
fmt.Printf("Uninstalled java %s\n", vname)
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package archiver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Run_unzip(src string, dst string, strip bool) error {
|
||||||
|
return Unarchive(src, dst, strip)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Unarchive(src string, dst string, strip bool) (err error) {
|
||||||
|
fileTypes := strings.Split(src, ".")
|
||||||
|
if len(fileTypes) == 0 {
|
||||||
|
return errors.New("fileType is not supported")
|
||||||
|
}
|
||||||
|
//fmt.Println(fileTypes[len(fileTypes)-1])
|
||||||
|
switch fileTypes[len(fileTypes)-1] {
|
||||||
|
case "gz":
|
||||||
|
err = untgz(src, dst, strip)
|
||||||
|
case "gx":
|
||||||
|
err = untgx(src, dst, strip)
|
||||||
|
case "zip":
|
||||||
|
err = unzip(src, dst, strip)
|
||||||
|
default:
|
||||||
|
err = errors.New(fileTypes[len(fileTypes)-1] + " is not supported")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
@ -0,0 +1,117 @@
|
|||||||
|
package archiver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"archive/tar"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"github.com/xi2/xz"
|
||||||
|
)
|
||||||
|
|
||||||
|
func untgx(src string, dst string, strip bool) error {
|
||||||
|
xzFile, err := os.Open(src)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer xzFile.Close()
|
||||||
|
var prefixToStrip string
|
||||||
|
if strip {
|
||||||
|
xzr, err := xz.NewReader(xzFile, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
r := tar.NewReader(xzr)
|
||||||
|
var prefix []string
|
||||||
|
for {
|
||||||
|
header, err := r.Next()
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var dir string
|
||||||
|
if header.Typeflag != tar.TypeDir {
|
||||||
|
dir = filepath.Dir(header.Name)
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if prefix != nil {
|
||||||
|
dirSplit := strings.Split(dir, string(filepath.Separator))
|
||||||
|
i, e, dse := 0, len(prefix), len(dirSplit)
|
||||||
|
if dse < e {
|
||||||
|
e = dse
|
||||||
|
}
|
||||||
|
for i < e {
|
||||||
|
if prefix[i] != dirSplit[i] {
|
||||||
|
prefix = prefix[0:i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
prefix = strings.Split(dir, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prefixToStrip = strings.Join(prefix, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
xzFile.Seek(0, 0)
|
||||||
|
xzr, err := xz.NewReader(xzFile, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
r := tar.NewReader(xzr)
|
||||||
|
dirCache := make(map[string]bool) // todo: radix tree would perform better here
|
||||||
|
if err := os.MkdirAll(dst, 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
header, err := r.Next()
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var dir string
|
||||||
|
if header.Typeflag != tar.TypeDir {
|
||||||
|
dir = filepath.Dir(header.Name)
|
||||||
|
} else {
|
||||||
|
dir = filepath.Clean(header.Name)
|
||||||
|
if !strings.HasPrefix(dir, prefixToStrip) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dir = strings.TrimPrefix(dir, prefixToStrip)
|
||||||
|
if dir != "" && dir != "." {
|
||||||
|
cached := dirCache[dir]
|
||||||
|
if !cached {
|
||||||
|
if err := os.MkdirAll(filepath.Join(dst, dir), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dirCache[dir] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
target := filepath.Join(dst, dir, filepath.Base(header.Name))
|
||||||
|
switch header.Typeflag {
|
||||||
|
case tar.TypeReg:
|
||||||
|
d, err := os.OpenFile(target,
|
||||||
|
os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(header.Mode|0600)&0777)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = io.Copy(d, r)
|
||||||
|
d.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
case tar.TypeSymlink:
|
||||||
|
if err = os.Symlink(header.Linkname, target); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,118 @@
|
|||||||
|
package archiver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"archive/tar"
|
||||||
|
"compress/gzip"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func untgz(src string, dst string, strip bool) error {
|
||||||
|
gzFile, err := os.Open(src)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer gzFile.Close()
|
||||||
|
var prefixToStrip string
|
||||||
|
if strip {
|
||||||
|
gzr, err := gzip.NewReader(gzFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer gzr.Close()
|
||||||
|
r := tar.NewReader(gzr)
|
||||||
|
var prefix []string
|
||||||
|
for {
|
||||||
|
header, err := r.Next()
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var dir string
|
||||||
|
if header.Typeflag != tar.TypeDir {
|
||||||
|
dir = filepath.Dir(header.Name)
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if prefix != nil {
|
||||||
|
dirSplit := strings.Split(dir, string(filepath.Separator))
|
||||||
|
i, e, dse := 0, len(prefix), len(dirSplit)
|
||||||
|
if dse < e {
|
||||||
|
e = dse
|
||||||
|
}
|
||||||
|
for i < e {
|
||||||
|
if prefix[i] != dirSplit[i] {
|
||||||
|
prefix = prefix[0:i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
prefix = strings.Split(dir, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prefixToStrip = strings.Join(prefix, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
gzFile.Seek(0, 0)
|
||||||
|
gzr, err := gzip.NewReader(gzFile)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer gzr.Close()
|
||||||
|
r := tar.NewReader(gzr)
|
||||||
|
dirCache := make(map[string]bool) // todo: radix tree would perform better here
|
||||||
|
if err := os.MkdirAll(dst, 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for {
|
||||||
|
header, err := r.Next()
|
||||||
|
if err == io.EOF {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
var dir string
|
||||||
|
if header.Typeflag != tar.TypeDir {
|
||||||
|
dir = filepath.Dir(header.Name)
|
||||||
|
} else {
|
||||||
|
dir = filepath.Clean(header.Name)
|
||||||
|
if !strings.HasPrefix(dir, prefixToStrip) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dir = strings.TrimPrefix(dir, prefixToStrip)
|
||||||
|
if dir != "" && dir != "." {
|
||||||
|
cached := dirCache[dir]
|
||||||
|
if !cached {
|
||||||
|
if err := os.MkdirAll(filepath.Join(dst, dir), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dirCache[dir] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
target := filepath.Join(dst, dir, filepath.Base(header.Name))
|
||||||
|
switch header.Typeflag {
|
||||||
|
case tar.TypeReg:
|
||||||
|
d, err := os.OpenFile(target,
|
||||||
|
os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.FileMode(header.Mode|0600)&0777)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = io.Copy(d, r)
|
||||||
|
d.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
case tar.TypeSymlink:
|
||||||
|
if err = os.Symlink(header.Linkname, target); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,89 @@
|
|||||||
|
package archiver
|
||||||
|
|
||||||
|
import (
|
||||||
|
"archive/zip"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func unzip(src string, dst string, strip bool) error {
|
||||||
|
r, err := zip.OpenReader(src)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer r.Close()
|
||||||
|
var prefixToStrip string
|
||||||
|
if strip {
|
||||||
|
var prefix []string
|
||||||
|
for _, f := range r.File {
|
||||||
|
var dir string
|
||||||
|
if !f.Mode().IsDir() {
|
||||||
|
dir = filepath.Dir(f.Name)
|
||||||
|
} else {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if prefix != nil {
|
||||||
|
dirSplit := strings.Split(dir, string(filepath.Separator))
|
||||||
|
i, e, dse := 0, len(prefix), len(dirSplit)
|
||||||
|
if dse < e {
|
||||||
|
e = dse
|
||||||
|
}
|
||||||
|
for i < e {
|
||||||
|
if prefix[i] != dirSplit[i] {
|
||||||
|
prefix = prefix[0:i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
prefix = strings.Split(dir, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prefixToStrip = strings.Join(prefix, string(filepath.Separator))
|
||||||
|
}
|
||||||
|
dirCache := make(map[string]bool) // todo: radix tree would perform better here
|
||||||
|
if err := os.MkdirAll(dst, 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, f := range r.File {
|
||||||
|
var dir string
|
||||||
|
if !f.Mode().IsDir() {
|
||||||
|
dir = filepath.Dir(f.Name)
|
||||||
|
} else {
|
||||||
|
dir = filepath.Clean(f.Name)
|
||||||
|
if !strings.HasPrefix(dir, prefixToStrip) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dir = strings.TrimPrefix(dir, prefixToStrip)
|
||||||
|
if dir != "" && dir != "." {
|
||||||
|
cached := dirCache[dir]
|
||||||
|
if !cached {
|
||||||
|
if err := os.MkdirAll(filepath.Join(dst, dir), 0755); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dirCache[dir] = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !f.Mode().IsDir() {
|
||||||
|
name := filepath.Base(f.Name)
|
||||||
|
fr, err := f.Open()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
d, err := os.OpenFile(filepath.Join(dst, dir, name),
|
||||||
|
os.O_WRONLY|os.O_CREATE|os.O_TRUNC, (f.Mode()|0600)&0777)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = io.Copy(d, fr)
|
||||||
|
d.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -0,0 +1,100 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
var linux_Url_Items = []*UrlItem{
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-19+36_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk19/ri/openjdk-19+36_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-19",
|
||||||
|
SimpleName: "19",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-18+36_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk18/ri/openjdk-18+36_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-18",
|
||||||
|
SimpleName: "18",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-17+35_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk17/ri/openjdk-17+35_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-17",
|
||||||
|
SimpleName: "17",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-16+36_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk16/ri/openjdk-16+36_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-16",
|
||||||
|
SimpleName: "16",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-15+36_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk15/ri/openjdk-15+36_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-15",
|
||||||
|
SimpleName: "15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-14+36_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk14/ri/openjdk-14+36_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-14",
|
||||||
|
SimpleName: "14",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-13+33_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk13/ri/openjdk-13+33_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-13",
|
||||||
|
SimpleName: "13",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-12+32_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-12",
|
||||||
|
SimpleName: "12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-11+28_linux-x64_bin.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-11",
|
||||||
|
SimpleName: "11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-10+44_linux-x64_bin_ri.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk10/ri/openjdk-10+44_linux-x64_bin_ri.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-10",
|
||||||
|
SimpleName: "10",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-9+181_linux-x64_ri.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk9/ri/openjdk-9+181_linux-x64_ri.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-9",
|
||||||
|
SimpleName: "9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-8u42-b03-linux-x64-14_jul_2022.tar.gz",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk8u42/ri/openjdk-8u42-b03-linux-x64-14_jul_2022.tar.gz",
|
||||||
|
},
|
||||||
|
Expected: "jdk-8",
|
||||||
|
SimpleName: "8",
|
||||||
|
},
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
package config
|
||||||
|
|
||||||
|
var windows_Url_Items = []*UrlItem{
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-19+36_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk19/ri/openjdk-19+36_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-19",
|
||||||
|
SimpleName: "19",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-18+36_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk18/ri/openjdk-18+36_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-18",
|
||||||
|
SimpleName: "18",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-17+35_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk17/ri/openjdk-17+35_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-17",
|
||||||
|
SimpleName: "17",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-16+36_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk16/ri/openjdk-16+36_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-16",
|
||||||
|
SimpleName: "16",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-15+36_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk15/ri/openjdk-15+36_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-15",
|
||||||
|
SimpleName: "15",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-14+36_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk14/ri/openjdk-14+36_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-14",
|
||||||
|
SimpleName: "14",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-13+33_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk13/ri/openjdk-13+33_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-13",
|
||||||
|
SimpleName: "13",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-12+32_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk12/ri/openjdk-12+32_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-12",
|
||||||
|
SimpleName: "12",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-11+28_windows-x64_bin.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_windows-x64_bin.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-11",
|
||||||
|
SimpleName: "11",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "jdk-9+181_windows-x64_ri.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk9/ri/jdk-9+181_windows-x64_ri.zip",
|
||||||
|
},
|
||||||
|
Expected: "jdk-9",
|
||||||
|
SimpleName: "9",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
In: &JavaFileItem{
|
||||||
|
FileName: "openjdk-8u42-b03-windows-i586-14_jul_2022.zip",
|
||||||
|
URL: "https://download.java.net/openjdk/jdk8u42/ri/openjdk-8u42-b03-windows-i586-14_jul_2022.zip",
|
||||||
|
},
|
||||||
|
Expected: "java-se-8u42-ri",
|
||||||
|
SimpleName: "8",
|
||||||
|
},
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
VERSION := 1.0.0
|
||||||
|
build_linux:
|
||||||
|
set CGO_ENABLED=0
|
||||||
|
set GOARCH=amd64
|
||||||
|
set GOOS=linux
|
||||||
|
go build -ldflags "-s -w -X main.version=${VERSION}" -o ./bin/linux/j
|
||||||
|
build_windows:
|
||||||
|
set CGO_ENABLED=0
|
||||||
|
set GOARCH=amd64
|
||||||
|
set GOOS=windows
|
||||||
|
go build -ldflags "-s -w -X main.version=${VERSION}" -o ./bin/windows/j.exe
|
Loading…
Reference in New Issue