remove nautilus plugins from build to prepare for event log integration work
This commit is contained in:
parent
d276c83c20
commit
7b662995db
|
@ -1,5 +1,4 @@
|
|||
SUBDIRS = Nautilus \
|
||||
Pixmaps
|
||||
SUBDIRS = Pixmaps
|
||||
|
||||
ASSEMBLY = SparkleShare
|
||||
TARGET = exe
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
SOURCES = \
|
||||
sparkleshare-nautilus-extension.py \
|
||||
sparkleshare-nautilus3-extension.py
|
||||
|
||||
if NAUTILUS2_EXTENSION_ENABLED
|
||||
NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
|
||||
extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
|
||||
extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus-extension.py))
|
||||
endif
|
||||
if NAUTILUS3_EXTENSION_ENABLED
|
||||
NAUTILUS_PYTHON_INSTALL_DIR=$(subst $(NAUTILUS_PREFIX)/,${prefix}/,$(NAUTILUS_PYTHON_DIR))
|
||||
extensiondir = $(NAUTILUS_PYTHON_INSTALL_DIR)
|
||||
extension_SCRIPTS = $(addprefix $(srcdir)/, sparkleshare-nautilus3-extension.py)
|
||||
endif
|
||||
EXTRA_DIST = $(SOURCES) sparkleshare-nautilus-extension.py.in sparkleshare-nautilus3-extension.py.in
|
|
@ -1,173 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# SparkleShare, an instant update workflow to Git.
|
||||
# Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import time
|
||||
|
||||
import gio
|
||||
import nautilus
|
||||
|
||||
import pygtk
|
||||
pygtk.require('2.0')
|
||||
import gtk
|
||||
|
||||
SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare")
|
||||
|
||||
import gettext
|
||||
gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale')
|
||||
gettext.textdomain('sparkleshare')
|
||||
_ = gettext.gettext
|
||||
|
||||
class SparkleShareExtension (nautilus.MenuProvider):
|
||||
|
||||
|
||||
def __init__ (self):
|
||||
|
||||
debug = "Loaded Nautilus SparkleShare Extension."
|
||||
|
||||
|
||||
def checkout_version (self, menu, file_reference, commit_hash, username, timestamp):
|
||||
|
||||
file_name = file_reference.get_basename ().replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")
|
||||
file_path = file_reference.get_path ().replace (" ", "\ ").replace ("(", "\(").replace (")", "\)")
|
||||
tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_reference.get_basename ())
|
||||
|
||||
# Move the current version to a temporary path
|
||||
shutil.move (file_reference.get_path (), tmp_file_path)
|
||||
|
||||
# Check out the earlier version
|
||||
os.chdir (file_reference.get_parent ().get_path ())
|
||||
os.popen ("git checkout " + commit_hash + " " + file_name
|
||||
.replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
|
||||
|
||||
new_tmp_file_name = file_name + " (" + username + ", "
|
||||
new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") "
|
||||
|
||||
# Rename the checked out file
|
||||
shutil.move (file_name, new_tmp_file_name)
|
||||
|
||||
# Move the original file back
|
||||
shutil.move (tmp_file_path, file_path)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def copy_web_link (self, menu, file_reference):
|
||||
|
||||
path = file_reference.get_path ()
|
||||
|
||||
# Get the remote url used for the repo
|
||||
url_command = os.popen ("git config --get remote.origin.url")
|
||||
url = url_command.readline ().strip ()
|
||||
|
||||
# Strip the unneeded parts
|
||||
url = url.lstrip ("ssh://git")
|
||||
url = url.lstrip ("@")
|
||||
url = url.rstrip (".git")
|
||||
|
||||
# Format the right web url depending on the service
|
||||
relative_path = path.lstrip (SPARKLESHARE_PATH)
|
||||
repo_name = relative_path [:relative_path.find ("/")]
|
||||
relative_path = relative_path.lstrip (repo_name)
|
||||
|
||||
if "gitorious.org" in url:
|
||||
url = "http://" + url + "/blobs/master" + relative_path
|
||||
if "github.com" in url:
|
||||
url = "https://" + url + "/master" + relative_path
|
||||
|
||||
url = url.replace (" ", "%20");
|
||||
|
||||
clipboard = gtk.clipboard_get ()
|
||||
clipboard.set_text (url)
|
||||
clipboard.store ()
|
||||
|
||||
return
|
||||
|
||||
|
||||
def get_file_items (self, window, files):
|
||||
|
||||
# Only work if one file is selected
|
||||
if len (files) != 1:
|
||||
return
|
||||
|
||||
file_reference = gio.File (files [0].get_uri ())
|
||||
|
||||
# Only work if we're in a SparkleShare repository folder
|
||||
if not (file_reference.get_path ().startswith (SPARKLESHARE_PATH)):
|
||||
return
|
||||
|
||||
web_link_menu_item = nautilus.MenuItem ("Nautilus::CopyWebLink", _("Copy Web Link"),
|
||||
_("Copy the web address of this file to the clipboard"))
|
||||
|
||||
web_link_menu_item.connect ("activate", self.copy_web_link, file_reference)
|
||||
|
||||
|
||||
epochs = ["", "", "", "", "", "", "", "", "", ""]
|
||||
commit_hashes = ["", "", "", "", "", "", "", "", "", ""]
|
||||
|
||||
os.chdir (file_reference.get_parent ().get_path ())
|
||||
|
||||
time_command = os.popen ("git log -10 --format='%at' " + file_reference.get_basename ()
|
||||
.replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
|
||||
|
||||
author_command = os.popen ("git log -10 --format='%an' " + file_reference.get_basename ()
|
||||
.replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
|
||||
|
||||
hash_command = os.popen ("git log -10 --format='%H' " + file_reference.get_basename ()
|
||||
.replace (" ", "\ ").replace ("(", "\(").replace (")", "\)"))
|
||||
|
||||
i = 0
|
||||
for line in time_command.readlines ():
|
||||
epochs [i] = line.strip ("\n")
|
||||
i += 1
|
||||
|
||||
# Only work if there is history
|
||||
if i < 2:
|
||||
return web_link_menu_item,
|
||||
|
||||
i = 0
|
||||
for line in hash_command.readlines ():
|
||||
commit_hashes [i] = line.strip ("\n")
|
||||
i += 1
|
||||
|
||||
earlier_version_menu_item = nautilus.MenuItem ("Nautilus::OpenOlderVersion", _("Get Earlier Version"),
|
||||
_("Make a copy of an earlier version in this folder"))
|
||||
submenu = nautilus.Menu ()
|
||||
|
||||
i = 0
|
||||
for line in author_command.readlines ():
|
||||
|
||||
if i > 0:
|
||||
|
||||
timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i])))
|
||||
username = line.strip ("\n")
|
||||
|
||||
menu_item = nautilus.MenuItem ("Nautilus::Version" + epochs [i],
|
||||
timestamp + "\t" + username,
|
||||
_("Select to get a copy of this version"))
|
||||
|
||||
menu_item.connect ("activate", self.checkout_version, file_reference, commit_hashes [i],
|
||||
username, time.localtime (float (epochs [i])))
|
||||
submenu.append_item (menu_item)
|
||||
|
||||
i += 1
|
||||
|
||||
earlier_version_menu_item.set_submenu (submenu)
|
||||
|
||||
|
||||
return earlier_version_menu_item, web_link_menu_item
|
|
@ -1,200 +0,0 @@
|
|||
#!/usr/bin/python
|
||||
# SparkleShare, an instant update workflow to Git.
|
||||
# Copyright (C) 2010 Hylke Bons <hylkebons@gmail.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import time
|
||||
import urllib
|
||||
|
||||
# http://projects.gnome.org/nautilus-python/documentation/html/
|
||||
from gi.repository import Nautilus, GObject, Gtk, Gdk
|
||||
|
||||
SPARKLESHARE_PATH = os.path.join (os.path.expanduser ('~'), "SparkleShare")
|
||||
|
||||
import gettext
|
||||
gettext.bindtextdomain('sparkleshare', '@prefix@/share/locale')
|
||||
gettext.textdomain('sparkleshare')
|
||||
_ = gettext.gettext
|
||||
|
||||
class SparkleShareExtension (GObject.GObject, Nautilus.MenuProvider):
|
||||
|
||||
|
||||
def __init__ (self):
|
||||
pass
|
||||
|
||||
def checkout_version (self, menu, file_path, commit_hash, username, timestamp):
|
||||
|
||||
file_name = os.path.basename (file_path)
|
||||
tmp_file_path = os.path.join (SPARKLESHARE_PATH, ".tmp", file_name)
|
||||
|
||||
# Move the current version to a temporary path
|
||||
shutil.move (file_path, tmp_file_path)
|
||||
|
||||
# Check out the earlier version
|
||||
os.chdir (os.path.dirname (file_path))
|
||||
os.popen ("git checkout " + commit_hash + " '" + file_name + "'")
|
||||
|
||||
new_tmp_file_name = file_name + " (" + username + ", "
|
||||
new_tmp_file_name += time.strftime ("%H:%M %d %b %Y", timestamp).replace (" 0", " ") + ") "
|
||||
|
||||
# Rename the checked out file
|
||||
shutil.move (file_name, new_tmp_file_name)
|
||||
|
||||
# Move the original file back
|
||||
shutil.move (tmp_file_path, file_path)
|
||||
|
||||
return True
|
||||
|
||||
def format_web_link (self, path):
|
||||
# Get the remote url used for the repo
|
||||
self.chdir_to_repo_base(path)
|
||||
url_command = os.popen ("git config --get remote.origin.url")
|
||||
origin_url = url_command.readline ().strip ()
|
||||
if not origin_url:
|
||||
return
|
||||
|
||||
# Get components
|
||||
# TODO use regex here or something not so ugly
|
||||
protocol, remaining = origin_url.split ("://", 1)
|
||||
host, origin_path = remaining.split("@")[1].split("/", 1);
|
||||
# Format the right web url depending on the service
|
||||
repo_base = self.get_repo_base_path(path)
|
||||
relative_path = path.split(repo_base, 1)[1].lstrip("/")
|
||||
|
||||
#url = url.rstrip (".git")
|
||||
if "gitorious.org" in host:
|
||||
# ssh://git@gitorious.org/gnome-design/gnome-design.git
|
||||
# http://gitorious.org/gnome-design/gnome-design/blobs/raw/master/COPYING
|
||||
url = "http://" + host + "/" + urllib.quote(origin_path.rstrip(".git")) + "/blobs/master/" + urllib.quote(relative_path)
|
||||
elif "github.com" in host:
|
||||
# ssh://git@github.com/hbons/SparkleShare.git
|
||||
# https://raw.github.com/hbons/SparkleShare/master/README
|
||||
url = "https://raw.github.com/" + urllib.quote(origin_path.rstrip(".git")) + "/master/" + urllib.quote(relative_path)
|
||||
else:
|
||||
# https://git.one-gear.com/?p=thansen/Public.git;a=blob;f=SparkleShare.txt;hb=HEAD
|
||||
url = "http://" + host + "/?p=" + urllib.quote(origin_path) +";a=blob;f=" + urllib.quote(relative_path) + ";hb=HEAD"
|
||||
|
||||
return url
|
||||
|
||||
def copy_web_link (self, menu, path):
|
||||
url = self.format_web_link(path)
|
||||
clipboard = Gtk.Clipboard.get (Gdk.Atom.intern ("CLIPBOARD", False))
|
||||
clipboard.set_text (url, -1)
|
||||
clipboard.store ()
|
||||
|
||||
return
|
||||
|
||||
def chdir_to_repo_base(self, file_path):
|
||||
base_path = self.get_repo_base_path(file_path)
|
||||
os.chdir(base_path)
|
||||
|
||||
def get_repo_base_path(self, path):
|
||||
path = os.path.abspath(path)
|
||||
parts = path.split(SPARKLESHARE_PATH, 1)[1].split("/")
|
||||
if len(parts) > 1:
|
||||
sub_folder = parts[1]
|
||||
else:
|
||||
sub_folder = parts[0]
|
||||
return SPARKLESHARE_PATH + "/" + sub_folder
|
||||
|
||||
def get_file_items (self, window, files):
|
||||
|
||||
# Only work if one file is selected
|
||||
if len (files) != 1:
|
||||
return
|
||||
|
||||
file_reference = files [0]
|
||||
|
||||
# Only work if we're in a SparkleShare repository folder
|
||||
if file_reference.is_directory ():
|
||||
return
|
||||
if not (file_reference.get_parent_uri ().startswith ('file://' + SPARKLESHARE_PATH)):
|
||||
return
|
||||
if file_reference.get_parent_uri () == 'file://' + SPARKLESHARE_PATH:
|
||||
return
|
||||
|
||||
file_path = urllib.unquote ('/' + file_reference.get_uri ().lstrip('file:/'))
|
||||
url = self.format_web_link (file_path)
|
||||
parent_path = os.path.dirname (os.path.abspath (file_path))
|
||||
|
||||
top_menuitem = Nautilus.MenuItem (name="Nautilus::SparkleShare",
|
||||
label="SparkleShare")
|
||||
|
||||
top_submenu = Nautilus.Menu ()
|
||||
top_menuitem.set_submenu (top_submenu)
|
||||
|
||||
web_link_menu_item_copy = Nautilus.MenuItem (name="Nautilus::CopyWebLink",
|
||||
label=_("Copy Web Link"),
|
||||
tip=_("Copy the web address of this file to the clipboard"))
|
||||
|
||||
web_link_menu_item_copy.connect ("activate", self.copy_web_link, file_path)
|
||||
|
||||
|
||||
epochs = ["", "", "", "", "", "", "", "", "", ""]
|
||||
commit_hashes = ["", "", "", "", "", "", "", "", "", ""]
|
||||
|
||||
|
||||
time_command = os.popen ("git log -10 --format='%at' '" + file_path + "'")
|
||||
|
||||
author_command = os.popen ("git log -10 --format='%an' '" + file_path + "'")
|
||||
|
||||
hash_command = os.popen ("git log -10 --format='%H' '" + file_path + "'")
|
||||
|
||||
i = 0
|
||||
for line in time_command.readlines ():
|
||||
epochs [i] = line.strip ("\n")
|
||||
i += 1
|
||||
|
||||
|
||||
# Only work if there is history
|
||||
if i < 2:
|
||||
top_submenu.append_item (web_link_menu_item_copy)
|
||||
return [top_menuitem]
|
||||
|
||||
i = 0
|
||||
for line in hash_command.readlines ():
|
||||
commit_hashes [i] = line.strip ("\n")
|
||||
i += 1
|
||||
|
||||
earlier_version_menu_item = Nautilus.MenuItem (name="Nautilus::OpenOlderVersion",
|
||||
label=_("Get Earlier Version"),
|
||||
tip=_("Make a copy of an earlier version in this folder"))
|
||||
version_submenu = Nautilus.Menu ()
|
||||
|
||||
i = 0
|
||||
for line in author_command.readlines ():
|
||||
|
||||
if i > 0:
|
||||
|
||||
timestamp = time.strftime ("%d %b\t%H:%M", time.localtime (float (epochs [i])))
|
||||
username = line.strip ("\n")
|
||||
|
||||
menu_item = Nautilus.MenuItem (name="Nautilus::Version" + epochs [i],
|
||||
label=timestamp + "\t" + username,
|
||||
tip=_("Select to get a copy of this version"))
|
||||
|
||||
menu_item.connect ("activate", self.checkout_version, file_path, commit_hashes [i],
|
||||
username, time.localtime (float (epochs [i])))
|
||||
version_submenu.append_item (menu_item)
|
||||
|
||||
i += 1
|
||||
|
||||
earlier_version_menu_item.set_submenu (version_submenu)
|
||||
top_submenu.append_item (earlier_version_menu_item)
|
||||
top_submenu.append_item (web_link_menu_item_copy)
|
||||
|
||||
return [top_menuitem]
|
|
@ -1,34 +0,0 @@
|
|||
AC_DEFUN([SPARKLESHARE_NAUTILUS_PYTHON],
|
||||
[
|
||||
AC_ARG_ENABLE(nautilus-extension,
|
||||
AC_HELP_STRING([--disable-nautilus-extension],[Do not install the Nautilus plugin]), enable_nautilus_extension=$enableval, enable_nautilus_extension=yes )
|
||||
if test x$enable_nautilus_extension = xyes; then
|
||||
PKG_CHECK_MODULES(NAUTILUS_PYTHON, nautilus-python < 1.1, have_nautilus2_python=yes, have_nautilus2_python=no)
|
||||
if test "x$have_nautilus2_python" = "xyes"; then
|
||||
NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
|
||||
AC_SUBST(NAUTILUS_PREFIX)
|
||||
NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
|
||||
AC_SUBST(NAUTILUS_PYTHON_DIR)
|
||||
AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, true)
|
||||
else
|
||||
AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, false)
|
||||
fi
|
||||
PKG_CHECK_MODULES(NAUTILUS3_PYTHON, nautilus-python >= 1.1, have_nautilus3_python=yes, have_nautilus3_python=no)
|
||||
if test "x$have_nautilus3_python" = "xyes"; then
|
||||
NAUTILUS_PREFIX="`$PKG_CONFIG --variable=prefix nautilus-python`"
|
||||
AC_SUBST(NAUTILUS_PREFIX)
|
||||
NAUTILUS_PYTHON_DIR="`$PKG_CONFIG --variable=pythondir nautilus-python`"
|
||||
AC_SUBST(NAUTILUS_PYTHON_DIR)
|
||||
AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, true)
|
||||
else
|
||||
AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, false)
|
||||
fi
|
||||
else
|
||||
have_nautilus2_python="disabled"
|
||||
have_nautilus3_python="disabled"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(NAUTILUS2_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes")
|
||||
AM_CONDITIONAL(NAUTILUS3_EXTENSION_ENABLED, test "x$enable_nautilus_extension" = "xyes")
|
||||
])
|
||||
|
|
@ -118,9 +118,6 @@ AC_SUBST([GUISUBDIRS])
|
|||
|
||||
SHAMROCK_CHECK_NUNIT
|
||||
|
||||
dnl Get nautilus extensions directory
|
||||
SPARKLESHARE_NAUTILUS_PYTHON
|
||||
|
||||
SHAVE_INIT([build/m4/shave], [enable])
|
||||
|
||||
AC_OUTPUT([
|
||||
|
@ -141,9 +138,6 @@ SparkleShare/Linux/Pixmaps/icons/Makefile
|
|||
SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-dark/Makefile
|
||||
SparkleShare/Linux/Pixmaps/icons/ubuntu-mono-light/Makefile
|
||||
SparkleShare/Linux/sparkleshare
|
||||
SparkleShare/Linux/Nautilus/Makefile
|
||||
SparkleShare/Linux/Nautilus/sparkleshare-nautilus-extension.py
|
||||
SparkleShare/Linux/Nautilus/sparkleshare-nautilus3-extension.py
|
||||
SparkleShare/Makefile
|
||||
Makefile
|
||||
])
|
||||
|
@ -154,8 +148,6 @@ SparkleShare ${VERSION}
|
|||
Configuration:
|
||||
Prefix : ${prefix}
|
||||
Build Gtk+ UI : ${enable_gtkui}
|
||||
Nautilus 2.x plugin : ${have_nautilus2_python}
|
||||
Nautilus 3.x plugin : ${have_nautilus3_python}
|
||||
|
||||
"
|
||||
|
||||
|
|
Loading…
Reference in a new issue