func main() { err := dbus.InstallOnSystem(&LanguageSelector{}) if err != nil { print("Can't Init LanguageSelector DBus Servier: " + err.Error()) return } dbus.DealWithUnhandledMessage() dbus.Wait() }
func main() { // change current working directory to desktop. os.Chdir(desktop.GetDesktopDir()) timer := profile.NewTimer() app := dapp.New("deepin-file-manager-backend", "the backend of deepin file manager", "version "+__VERSION__) app.ParseCommandLine(os.Args[1:]) Log.SetLogLevel(app.LogLevel()) app.StartProfile() Log.Debug("Parse command line...ok, cost", timer.Elapsed()) proxy.SetupProxy() Log.Info("initialize operation backend...") operationBackend := NewOperationBackend() info := operationBackend.GetDBusInfo() if !lib.UniqueOnSession(info.Dest) { Log.Info("already exists a session bus named", info.Dest) os.Exit(1) } err := initializer.DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) return operationBackend, nil }).Do(func() error { Log.Info("initialize gtk...") C.GtkInit() Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize i18n...") InitI18n() Log.Info("ok, cost", timer.Elapsed()) return nil }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("initialize operation flags dbus interface...") return NewOperationFlags(), nil }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize monitor manager...") return monitor.NewMonitorManager(), nil }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize trash monitor...") return monitor.NewTrashMonitor() }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize file info...") return fileinfo.NewQueryFileInfoJob(), nil }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize Clipboard...") return clipboard.NewClipboard(), nil }).DoWithSessionBus(func() (dbus.DBusObject, error) { Log.Info("ok, cost", timer.Elapsed()) Log.Info("initialize desktop daemon...") return desktop.NewDesktopDaemon() }).GetError() Log.Debug("register session...") session.Register() Log.Info("ok, cost", timer.Elapsed()) if err != nil { Log.Info("Failed:", err) os.Exit(1) } go glib.StartLoop() dbus.DealWithUnhandledMessage() Log.Info("Total cost", timer.TotalCost()) if err := dbus.Wait(); err != nil { Log.Info(err) os.Exit(2) } }