mirror of
https://github.com/tuna/tunasync.git
synced 2025-06-15 14:12:47 +00:00
TUNASYNC_WORKING_DIR and TUNASYNC_UPSTREAM_URL as env to shell provider
This commit is contained in:
parent
bf86cdafbf
commit
680940dfe3
@ -1,5 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
echo $TUNASYNC_LOCAL_DIR
|
echo $TUNASYNC_WORKING_DIR
|
||||||
echo $TUNASYNC_LOG_FILE
|
echo $TUNASYNC_LOG_FILE
|
||||||
|
echo $TUNASYNC_UPSTREAM_URL
|
||||||
sleep 5
|
sleep 5
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -15,7 +15,6 @@ ctrl_addr = "/tmp/tunasync.sock"
|
|||||||
[btrfs]
|
[btrfs]
|
||||||
service_dir = "{mirror_root}/_current/{mirror_name}"
|
service_dir = "{mirror_root}/_current/{mirror_name}"
|
||||||
working_dir = "{mirror_root}/_working/{mirror_name}"
|
working_dir = "{mirror_root}/_working/{mirror_name}"
|
||||||
gc_root = "{mirror_root}/_garbage/"
|
|
||||||
gc_dir = "{mirror_root}/_garbage/_gc_{mirror_name}_{{timestamp}}"
|
gc_dir = "{mirror_root}/_garbage/_gc_{mirror_name}_{{timestamp}}"
|
||||||
|
|
||||||
# [[mirrors]]
|
# [[mirrors]]
|
||||||
@ -43,6 +42,7 @@ local_dir = "/mnt/sdb1/mirror/archlinux/current/"
|
|||||||
name = "arch4"
|
name = "arch4"
|
||||||
provider = "shell"
|
provider = "shell"
|
||||||
command = "./shell_provider.sh"
|
command = "./shell_provider.sh"
|
||||||
|
upstream = "https://pypi.python.org/"
|
||||||
# log_file = "/tmp/arch4-{date}.log"
|
# log_file = "/tmp/arch4-{date}.log"
|
||||||
use_btrfs = false
|
use_btrfs = false
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@ def run_job(sema, child_q, manager_q, provider, **settings):
|
|||||||
status = "syncing"
|
status = "syncing"
|
||||||
manager_q.put(("UPDATE", (provider.name, status)))
|
manager_q.put(("UPDATE", (provider.name, status)))
|
||||||
ctx = {} # put context info in it
|
ctx = {} # put context info in it
|
||||||
|
ctx['current_dir'] = provider.local_dir
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for hook in provider.hooks:
|
for hook in provider.hooks:
|
||||||
hook.before_job(provider=provider, ctx=ctx)
|
hook.before_job(provider=provider, ctx=ctx)
|
||||||
|
@ -56,7 +56,7 @@ class LogLimitHook(JobHook):
|
|||||||
sh.mv(log_file, log_file_save)
|
sh.mv(log_file, log_file_save)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
self.create_lin(log_link, log_file_save)
|
self.create_link(log_link, log_file_save)
|
||||||
|
|
||||||
def ensure_log_dir(self, log_dir):
|
def ensure_log_dir(self, log_dir):
|
||||||
if not os.path.exists(log_dir):
|
if not os.path.exists(log_dir):
|
||||||
|
@ -60,26 +60,27 @@ class MirrorConfig(object):
|
|||||||
def to_provider(self, hooks=[]):
|
def to_provider(self, hooks=[]):
|
||||||
if self.provider == "rsync":
|
if self.provider == "rsync":
|
||||||
provider = RsyncProvider(
|
provider = RsyncProvider(
|
||||||
self.name,
|
name=self.name,
|
||||||
self.upstream,
|
upstream_url=self.upstream,
|
||||||
self.local_dir,
|
local_dir=self.local_dir,
|
||||||
self.log_dir,
|
log_dir=self.log_dir,
|
||||||
self.use_ipv6,
|
useIPv6=self.use_ipv6,
|
||||||
self.password,
|
password=self.password,
|
||||||
self.exclude_file,
|
exclude_file=self.exclude_file,
|
||||||
self.log_file,
|
log_file=self.log_file,
|
||||||
self.interval,
|
interval=self.interval,
|
||||||
hooks,
|
hooks=hooks,
|
||||||
)
|
)
|
||||||
elif self.options["provider"] == "shell":
|
elif self.options["provider"] == "shell":
|
||||||
provider = ShellProvider(
|
provider = ShellProvider(
|
||||||
self.name,
|
name=self.name,
|
||||||
self.command,
|
command=self.command,
|
||||||
self.local_dir,
|
upstream_url=self.upstream,
|
||||||
self.log_dir,
|
local_dir=self.local_dir,
|
||||||
self.log_file,
|
log_dir=self.log_dir,
|
||||||
self.interval,
|
log_file=self.log_file,
|
||||||
hooks
|
interval=self.interval,
|
||||||
|
hooks=hooks
|
||||||
)
|
)
|
||||||
|
|
||||||
return provider
|
return provider
|
||||||
|
@ -83,7 +83,9 @@ class RsyncProvider(MirrorProvider):
|
|||||||
def run(self, ctx={}):
|
def run(self, ctx={}):
|
||||||
_args = self.options
|
_args = self.options
|
||||||
_args.append(self.upstream_url)
|
_args.append(self.upstream_url)
|
||||||
_args.append(self.local_dir)
|
|
||||||
|
working_dir = ctx.get("current_dir", self.local_dir)
|
||||||
|
_args.append(working_dir)
|
||||||
|
|
||||||
log_file = self.get_log_file(ctx)
|
log_file = self.get_log_file(ctx)
|
||||||
new_env = os.environ.copy()
|
new_env = os.environ.copy()
|
||||||
@ -96,11 +98,12 @@ class RsyncProvider(MirrorProvider):
|
|||||||
|
|
||||||
class ShellProvider(MirrorProvider):
|
class ShellProvider(MirrorProvider):
|
||||||
|
|
||||||
def __init__(self, name, command, local_dir, log_dir,
|
def __init__(self, name, command, upstream_url, local_dir, log_dir,
|
||||||
log_file="/dev/null", interval=120, hooks=[]):
|
log_file="/dev/null", interval=120, hooks=[]):
|
||||||
|
|
||||||
super(ShellProvider, self).__init__(name, local_dir, log_dir, log_file,
|
super(ShellProvider, self).__init__(name, local_dir, log_dir, log_file,
|
||||||
interval, hooks)
|
interval, hooks)
|
||||||
|
self.upstream_url = str(upstream_url)
|
||||||
self.command = command.split()
|
self.command = command.split()
|
||||||
|
|
||||||
def run(self, ctx={}):
|
def run(self, ctx={}):
|
||||||
@ -110,6 +113,8 @@ class ShellProvider(MirrorProvider):
|
|||||||
new_env = os.environ.copy()
|
new_env = os.environ.copy()
|
||||||
new_env["TUNASYNC_MIRROR_NAME"] = self.name
|
new_env["TUNASYNC_MIRROR_NAME"] = self.name
|
||||||
new_env["TUNASYNC_LOCAL_DIR"] = self.local_dir
|
new_env["TUNASYNC_LOCAL_DIR"] = self.local_dir
|
||||||
|
new_env["TUNASYNC_WORKING_DIR"] = ctx.get("current_dir", self.local_dir)
|
||||||
|
new_env["TUNASYNC_UPSTREAM_URL"] = self.upstream_url
|
||||||
new_env["TUNASYNC_LOG_FILE"] = log_file
|
new_env["TUNASYNC_LOG_FILE"] = log_file
|
||||||
|
|
||||||
_cmd = self.command[0]
|
_cmd = self.command[0]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user