Coder Social home page Coder Social logo

yarg's People

Contributors

pretz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

yarg's Issues

allow scheduling jobs in monthly and daily

Currently yarg only allows weekly repeat jobs. The main issue was getting a nice GUI that behaved to allow choosing monthly, daily, or bi-etc weekly jobs.

Aditionally launchd syntax for scheduling things like this is much more bizarre than cron's -- would these require a changeover to cron?

Think about localizing.

What that would entail as far as changing current code, and if it makes sense.
I can't localize into anything -- making it localizeable would only make sense if someone would want to localize it. Aditionally, would localizing make sense with my personal willy nilly development cycle, or would Actual Releases come about too rarely to be feasable?

use -x with rsync always

-x, --one-file-system
This tells rsync not to cross filesystem boundaries when
recursing. This is useful for transferring the contents of
only one filesystem.

create a cron scheduling engine in addition to the launchd engine

This will allow future portability; potentially to gnustep.
Aditionally it appears there are some fundamental issues with launchd in earlier versions of os x: for yarg to work with older versions it will have to work with cron.

psyncx has a cron management class written, I could potentially use that code (psyncx is GPL according to sourceforge although there is no license that comes with the software). Has anyone else written a C/Obj-C interface for creating, modifying, and deleting entries in a user's crontab? I'd really rather not write it all from scratch.

Allow blessing of other hard drives

This will allow the user to use rsync to clone their main hard drive onto another, and then boot from the other drive.
Before blessing a drive, do I need to check that the drive is the right partition format?

Store information pertaining to jobs run as root in files owned by root

Imagine this scenario:
Yarg stores its serialized jobs in a preferences file in /Users/alex/Library/preferences/com.pretz.yarg
Yarg runs a scheduled job set to run as root, authenticates itself, and begins the job.

NOW, imagine a malicious application that overwrites that preferences file to do something nasty when rsync is called (like somehow giving it setuid). That would be pretty bad.

Exclusion list doesn't work with filenames which contain spaces

Correct me if I'm wrong, but the exclusion list in the GUI doesn't seem to accommodate filenames which contain whitespace, since whitespace is used to delimitate the excluded files. Also, I had to check the source to find out what the delimiter was for the list; it isn't clear in the program whether it's whitespace, returns, commas, etc.

Thanks a bunch for Yarg though! There really are some godawful OS X GUIs for rsync out there, so it's great to finally find one that is nice and simple and works. And I don't have any major complaints other than this one. :)

use expect to script rsync

It seems to me that the only way to handle receiving passwords from a user and supplying that password to rsync is to use expect to script rsync, and pass a password to expect via a pipe or by embedding it in a script.

My issue is that handing the password to rsync or ssh via the command line will result in the password being visible globally as a running process' name. Is there a way to hide that?

expect also allows passwords to be prompted for conditionally, so that I can just run the job and if it turns out I need a password, ask for one. Is this important?

have launchd jobs launch yarg instead of rsync

This will allow yarg to access passwords stored in the keychain, so they don't have to be embedded in launchd jobs.
This will also allow yarg to optionally show something to the user as its job is running, and log that the job ran.

Use os x authentication/authorization services to run jobs as root

Running an rsync job as root is the only way to make a proper image of the entire hard drive. To run an rsync as root, it appears I will have to use os x's authentication framework and do some major refactoring and redesign. See [http://developer.apple.com/documentation/Security/Conceptual/SecureCodingGuide/index.html Apple's Secure Coding Guide], and possible how to call rsync: [http://developer.apple.com/documentation/Security/Conceptual/authorization_concepts/index.html#//apple_ref/doc/uid/TP30000995 Calling a Helper Tool as Root].

Yarg 0.3 crashes immediately on launch

Yarg 0.3 is not launching under 10.5.6. In system.log, I get the following entries:

Jan 10 08:39:50 Ians-MacBook-Pro Yarg[1326]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary.
Jan 10 08:39:52 Ians-MacBook-Pro ReportCrash[1328]: Formulating crash report for process Yarg[1326]
Jan 10 08:39:52 Ians-MacBook-Pro ReportCrash[1328]: Saved crashreport to /Users/ian/Library/Logs/CrashReporter/Yarg_2009-01-10-083950_Ians-MacBook-Pro.crash using uid: 501 gid: 501, euid: 501 egid: 501
Jan 10 08:39:52 Ians-MacBook-Pro com.apple.launchd97: Exited abnormally: Bus error

The GUI never appears.

I attach the crash log.

Cleanup code in yargcontroller.m

seperate doThisThing and doThisThingButtonPressed, or thisThing and thisThingTextArea in yargController

Is there a good reason to use NSKeyedArchiver and save each job to a file instead of just storing everything in dicts and serializing into NSUserDefaults?

Upgrade Yarg to use rsync 3

rsync 3 includes a number of fixes related to ACLs and hfs "extended attributes". This will require yarg to bundle an rsync binary in its own distribution.

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.