Giter VIP home page Giter VIP logo

app-idgamessync's People

Stargazers

 avatar

Watchers

 avatar  avatar

app-idgamessync's Issues

don't sync files in /incoming

Don't sync files in /incoming, don't list them as well unless --incoming is turned on(?) (don't show in output reports, as well as don't try downloads from incoming unless --incoming is used)

Always download "changable" metadata files from the master mirror

Any file that is generated on the master mirror, such as ls-laR.gz, fullsort.gz, LAST.* should be downloaded only from the master mirror, as the size of those files in the ls-laR.gz file won't be the same on other mirrors until those mirrors are 100% synchronized to the master, which in reality may never happen (because submissions are always being accepted)

Convert objects to Moose or Moo

Moose may be better than both Mouse or Moo, because it will be more available. Moo would be good because it doesn't have as many dependencies as Mouse or Moose.

Show number of files out of date when run in --dry-run mode

When running idgames_mirror.pl using the --dry-run switch, keep track of the number of files that are different between the local system and what's shown in ls-laR.gz, and summarize the differences when the script exits

  • Number of files that are different
  • Approximate size of data to be downloaded

Change the current files synced/bytes synced fields to say files to be synced/bytes to be synced

Make --size-local the default behavior when running idgames_sync.pl

Make the report types "size" and "local" (show files when size differs, show files missing from the local system) the default when running idgames_sync.pl.

This way, it takes less command line switches to get what is most likely the desired behaivor.

Users can get the full report by using --show-all or report type "all" or something like that.

ls-laR.gz file is stat()'ed even if the download of that file fails

The 'ls-laR.gz' file is downloaded when the script first starts. If the download fails, the stat call is performed against the undefined filehandle, which throws a warning. Move the call to stat the downloaded file to be after the check for defined-ed-ness of the filehandle for the downloaded file.

Add "strict" checking of file/directory sizes/dates

Add "strict" checking of file/directory sizes/dates; differing dates and permissions will also fail a test; it's actually hard to check for different size directories, as the directory size between different filesystems (archive filesystem and local filesystem) will only be the same size when both machines have the same OS, OS Version and disk sizes

Paths to files are *NIX-specific

There's not a lot of handling of Windows file paths in the script, most likely things will break badly when the script is run under Windows

Split packages in idgames_mirror.pl into their own files

Split packages into individual files, so that way, packages can be loaded and tested by package, instead of trying to herk around with the entire idgames_sync.pl script. It's easier to test individual files than to try and require a file in order to test packages inside of it. Add a Makefile rule that can combine all of the different libraries back together into a single script

Change file syncing to use a 72 hour window for date differences

Since the mirror server(s) and the local system are most likely in different timezones, use a 72 hour window when comparing dates on files in the archive and files on the local system, in addition to the sizes of the files; if the window on the dates of both files is within 72 hours, and the size of the files are the same, don't sync them

Print only the hostname when fetching files

The file to be fetched is already displayed in the output when fetching a file, so the full URL is kind of redundant. Use a regex to just grab the host part of the URL

my $regex = qr!^(ftp|http|https){1}://([\w.-]+)/(.*)$!;

works, but turn off the first capture

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.