diff --git a/main.go b/main.go index b7d8e0b..c8cbd14 100644 --- a/main.go +++ b/main.go @@ -13,9 +13,105 @@ import ( "github.com/alcortesm/tgz" "github.com/otiai10/copy" - "github.com/xyproto/unzip" ) +func CopyDirectory(scrDir, dest string) error { + entries, err := os.ReadDir(scrDir) + if err != nil { + return err + } + for _, entry := range entries { + sourcePath := filepath.Join(scrDir, entry.Name()) + destPath := filepath.Join(dest, entry.Name()) + + fileInfo, err := os.Stat(sourcePath) + if err != nil { + return err + } + + switch fileInfo.Mode() & os.ModeType { + case os.ModeDir: + if err := CreateIfNotExists(destPath, 0755); err != nil { + return err + } + if err := CopyDirectory(sourcePath, destPath); err != nil { + return err + } + case os.ModeSymlink: + if err := CopySymLink(sourcePath, destPath); err != nil { + return err + } + default: + if err := Copy(sourcePath, destPath); err != nil { + return err + } + } + + fInfo, err := entry.Info() + if err != nil { + return err + } + + isSymlink := fInfo.Mode()&os.ModeSymlink != 0 + if !isSymlink { + if err := os.Chmod(destPath, fInfo.Mode()); err != nil { + return err + } + } + } + return nil +} + +func Copy(srcFile, dstFile string) error { + out, err := os.Create(dstFile) + if err != nil { + return err + } + + defer out.Close() + + in, err := os.Open(srcFile) + defer in.Close() + if err != nil { + return err + } + + _, err = io.Copy(out, in) + if err != nil { + return err + } + + return nil +} + +func Exists(filePath string) bool { + if _, err := os.Stat(filePath); os.IsNotExist(err) { + return false + } + + return true +} + +func CreateIfNotExists(dir string, perm os.FileMode) error { + if Exists(dir) { + return nil + } + + if err := os.MkdirAll(dir, perm); err != nil { + return fmt.Errorf("failed to create directory: '%s', error: '%s'", dir, err.Error()) + } + + return nil +} + +func CopySymLink(source, dest string) error { + link, err := os.Readlink(source) + if err != nil { + return err + } + return os.Symlink(link, dest) +} + func getVersions() []string { url := "https://ddragon.leagueoflegends.com/api/versions.json" @@ -116,12 +212,9 @@ func loadCurrent() { err = os.Rename(src, dst) checkError(err) - emblemsFile := loadRankedEmblems() export, _ := filepath.Abs(filepath.Join("data", "ranked-emblems")) - err = unzip.Extract(emblemsFile, export) + err = CopyDirectory("./ranked-emblems", export) checkError(err) - - os.RemoveAll(emblemsFile) } } diff --git a/ranked-emblems/ranked-emblem/emblem-bronze.png b/ranked-emblems/ranked-emblem/emblem-bronze.png new file mode 100644 index 0000000..c946ec7 Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-bronze.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-challenger.png b/ranked-emblems/ranked-emblem/emblem-challenger.png new file mode 100644 index 0000000..1baa9f1 Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-challenger.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-diamond.png b/ranked-emblems/ranked-emblem/emblem-diamond.png new file mode 100644 index 0000000..c6a4cca Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-diamond.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-gold.png b/ranked-emblems/ranked-emblem/emblem-gold.png new file mode 100644 index 0000000..571dcc0 Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-gold.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-grandmaster.png b/ranked-emblems/ranked-emblem/emblem-grandmaster.png new file mode 100644 index 0000000..815e2fd Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-grandmaster.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-iron.png b/ranked-emblems/ranked-emblem/emblem-iron.png new file mode 100644 index 0000000..e787aee Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-iron.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-master.png b/ranked-emblems/ranked-emblem/emblem-master.png new file mode 100644 index 0000000..9e27c4c Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-master.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-platinum.png b/ranked-emblems/ranked-emblem/emblem-platinum.png new file mode 100644 index 0000000..6bfc249 Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-platinum.png differ diff --git a/ranked-emblems/ranked-emblem/emblem-silver.png b/ranked-emblems/ranked-emblem/emblem-silver.png new file mode 100644 index 0000000..ac60156 Binary files /dev/null and b/ranked-emblems/ranked-emblem/emblem-silver.png differ diff --git a/ranked-emblems/ranked-emblem/tier/bronze-plate.png b/ranked-emblems/ranked-emblem/tier/bronze-plate.png new file mode 100644 index 0000000..3f13f41 Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/bronze-plate.png differ diff --git a/ranked-emblems/ranked-emblem/tier/diamond-plate.png b/ranked-emblems/ranked-emblem/tier/diamond-plate.png new file mode 100644 index 0000000..5190e90 Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/diamond-plate.png differ diff --git a/ranked-emblems/ranked-emblem/tier/gold-plate.png b/ranked-emblems/ranked-emblem/tier/gold-plate.png new file mode 100644 index 0000000..b2d68f7 Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/gold-plate.png differ diff --git a/ranked-emblems/ranked-emblem/tier/iron-plate.png b/ranked-emblems/ranked-emblem/tier/iron-plate.png new file mode 100644 index 0000000..8ec673b Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/iron-plate.png differ diff --git a/ranked-emblems/ranked-emblem/tier/platinum-plate.png b/ranked-emblems/ranked-emblem/tier/platinum-plate.png new file mode 100644 index 0000000..b9b81e9 Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/platinum-plate.png differ diff --git a/ranked-emblems/ranked-emblem/tier/silver-plate.png b/ranked-emblems/ranked-emblem/tier/silver-plate.png new file mode 100644 index 0000000..e68af2a Binary files /dev/null and b/ranked-emblems/ranked-emblem/tier/silver-plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_bronze.png b/ranked-emblems/ranked-emblem/wings/wings_bronze.png new file mode 100644 index 0000000..011a327 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_bronze.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_bronze_plate.png b/ranked-emblems/ranked-emblem/wings/wings_bronze_plate.png new file mode 100644 index 0000000..11a6631 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_bronze_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_challenger.png b/ranked-emblems/ranked-emblem/wings/wings_challenger.png new file mode 100644 index 0000000..ff79dd4 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_challenger.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_challenger_plate.png b/ranked-emblems/ranked-emblem/wings/wings_challenger_plate.png new file mode 100644 index 0000000..687e6dc Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_challenger_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_diamond.png b/ranked-emblems/ranked-emblem/wings/wings_diamond.png new file mode 100644 index 0000000..0a2b555 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_diamond.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_diamond_plate.png b/ranked-emblems/ranked-emblem/wings/wings_diamond_plate.png new file mode 100644 index 0000000..573bdb7 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_diamond_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_gold.png b/ranked-emblems/ranked-emblem/wings/wings_gold.png new file mode 100644 index 0000000..3c39c00 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_gold.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_gold_plate.png b/ranked-emblems/ranked-emblem/wings/wings_gold_plate.png new file mode 100644 index 0000000..3cf77b1 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_gold_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_grandmaster.png b/ranked-emblems/ranked-emblem/wings/wings_grandmaster.png new file mode 100644 index 0000000..32d6dda Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_grandmaster.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_grandmaster_plate.png b/ranked-emblems/ranked-emblem/wings/wings_grandmaster_plate.png new file mode 100644 index 0000000..7697cd2 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_grandmaster_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_iron.png b/ranked-emblems/ranked-emblem/wings/wings_iron.png new file mode 100644 index 0000000..595112a Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_iron.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_iron_plate.png b/ranked-emblems/ranked-emblem/wings/wings_iron_plate.png new file mode 100644 index 0000000..2d3aa5d Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_iron_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_master.png b/ranked-emblems/ranked-emblem/wings/wings_master.png new file mode 100644 index 0000000..a4d2ec2 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_master.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_master_plate.png b/ranked-emblems/ranked-emblem/wings/wings_master_plate.png new file mode 100644 index 0000000..82f3346 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_master_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_platinum.png b/ranked-emblems/ranked-emblem/wings/wings_platinum.png new file mode 100644 index 0000000..3c9c048 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_platinum.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_platinum_plate.png b/ranked-emblems/ranked-emblem/wings/wings_platinum_plate.png new file mode 100644 index 0000000..beab0b5 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_platinum_plate.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_silver.png b/ranked-emblems/ranked-emblem/wings/wings_silver.png new file mode 100644 index 0000000..e670ccb Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_silver.png differ diff --git a/ranked-emblems/ranked-emblem/wings/wings_silver_plate.png b/ranked-emblems/ranked-emblem/wings/wings_silver_plate.png new file mode 100644 index 0000000..48ebf83 Binary files /dev/null and b/ranked-emblems/ranked-emblem/wings/wings_silver_plate.png differ