def __init__(self): self.log = logging.getLogger('SyncDaemon') self.log.debug("Created SyncDaemon") self.log.debug("Attaching to D-BUS") self.name = dbus.service.BusName("net.wm161.HomeSync",bus=dbus.SessionBus()) #dbus.service.Object.__init__(self, object_path="/Server", conn=dbus.SessionBus(), bus_name=self.name) home = os.environ["HOME"] os.chdir(home) self.archiveHandler = DaemonCallback(self) self.archive = SyncArchive(home, backup=False, gitHandler = self.archiveHandler) self.archive.create() #os.nice(5) self.Ready() self.log.info("Starting indexing crawler") self.crawler = Crawler(self.archive) self.crawler.start() self.watcher = Watcher(self.archive) self.watcher.start() #self.avahi = AvahiBrowser() #self.deviceWatcher = DeviceWatcher() self.log.info("Ready for action.")
class SyncDaemon:#(dbus.service.Object): def __init__(self): self.log = logging.getLogger('SyncDaemon') self.log.debug("Created SyncDaemon") self.log.debug("Attaching to D-BUS") self.name = dbus.service.BusName("net.wm161.HomeSync",bus=dbus.SessionBus()) #dbus.service.Object.__init__(self, object_path="/Server", conn=dbus.SessionBus(), bus_name=self.name) home = os.environ["HOME"] os.chdir(home) self.archiveHandler = DaemonCallback(self) self.archive = SyncArchive(home, backup=False, gitHandler = self.archiveHandler) self.archive.create() #os.nice(5) self.Ready() self.log.info("Starting indexing crawler") self.crawler = Crawler(self.archive) self.crawler.start() self.watcher = Watcher(self.archive) self.watcher.start() #self.avahi = AvahiBrowser() #self.deviceWatcher = DeviceWatcher() self.log.info("Ready for action.") def dirUpdate(self,path): path = unicode(path).replace(os.environ["HOME"]+"/",'./',1) self.DirectoryChanged(path) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s') def PushToServer(self, remote): pass #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', out_signature='as') def DiscoveredHosts(self): pass #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', out_signature='as', in_signature='i') def ListFiles(self,type): self.log.debug("Listing files of type %i"%(type)) return self.git.files(type) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s') def AddFile(self,file): self.log.debug("Adding %s to repository",file) self.jobs.enqueue(self.git.add,file,self.FileAdded) self.jobs.enqueue(self.git.commit, "%s added"%(file), callback=self.FileCommitted) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server') def ArchiveNow(self): self.log.info("Requested an immediate archive.") self.jobs.enqueue(self.git.commitAll,"On Demand Archive", callback=self.FileCommitted) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s') def CommitFile(self, file): self.log.info("Committing %s",file) self.jobs.enqueue(self.git.commit,"Requested commit for %s"%(file), path=file, callback=self.FileCommitted) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s') def CreateBackup(self, path): self.log.info("Creating backup on %s",path) backup = GitInterface(path,bare=True) backup.init() #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s') def Backup(self, path): self.log.info("Pushing backup to %s",path) #backup = GitInterface(path,bare=True) self.jobs.enqueue(self.git.push,path) #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server') def ExitDaemon(self): self.log.info("Exiting") sys.exit() #@dbus.service.method(dbus_interface='net.wm161.HomeSync.Server', in_signature='s', out_signature="a(si)") def FileRevisions(self,path): self.log.debug("Requesting revisions of %s"%(path)) return self.git.revisionList(path) #@dbus.service.signal(dbus_interface='net.wm161.HomeSync.Server') def Ready(self): self.log.debug("Ready.") #@dbus.service.signal(dbus_interface='net.wm161.HomeSync.Server', signature='s') def FileAdded(self,file): self.log.debug("File added: %s",file) #@dbus.service.signal(dbus_interface='net.wm161.HomeSync.Server', signature='s') def FileCommitted(self, file): self.log.debug("File committed: %s",file)