Use configuration file
This commit is contained in:
parent
f06aef8c75
commit
a35abdf37e
|
@ -6,16 +6,22 @@ name = 'build'
|
||||||
help_text = 'Generate static website'
|
help_text = 'Generate static website'
|
||||||
|
|
||||||
|
|
||||||
def options(parser):
|
def options(parser, config, **kwargs):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'song_folder', help="Folder with the song database.")
|
'-s', '--song_folder', type=Path,
|
||||||
|
default=config['global']['song_folder'],
|
||||||
|
help="Folder with the song database, defaults to {}".format(
|
||||||
|
config['global']['song_folder']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'lyrics_file', help="File with the lyrics of the songs.")
|
'-l', '--lyrics_file', type=Path,
|
||||||
|
default=config['global']['lyrics_file'],
|
||||||
|
help="File with the lyrics of the songs, defaults to {}".format(
|
||||||
|
config['global']['lyrics_file']))
|
||||||
|
|
||||||
|
|
||||||
def run(args):
|
def run(args, **kwargs):
|
||||||
builder = Builder(
|
builder = Builder(
|
||||||
Path(args.song_folder),
|
Path(args.song_folder).expanduser(),
|
||||||
Path(args.lyrics_file),
|
Path(args.lyrics_file).expanduser(),
|
||||||
)
|
)
|
||||||
builder.build()
|
builder.build()
|
||||||
|
|
|
@ -5,21 +5,28 @@ import urllib.request
|
||||||
|
|
||||||
name = 'ipfs'
|
name = 'ipfs'
|
||||||
help_text = 'Upload the web to IPFS'
|
help_text = 'Upload the web to IPFS'
|
||||||
|
initial_config = {
|
||||||
|
'api': 'http://negromate.rocks:5001',
|
||||||
|
'pinfile': '~/.negromate/ipfs.hash',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def options(parser):
|
def options(parser, config, **kwargs):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'song_folder', type=Path,
|
'-s', '--song_folder', type=Path,
|
||||||
help="Folder with the song database.")
|
default=config['global']['song_folder'],
|
||||||
|
help="Folder with the song database, defaults to {}".format(
|
||||||
|
config['global']['song_folder']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-a', '--api', default='http://localhost:5001',
|
'-a', '--api', default=config[name]['api'],
|
||||||
help="IPFS API server, defaults to http://localhost:5001.")
|
help="IPFS API server, defaults to {}.".format(config[name]['api']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-p', '--pinfile', default='~/.negromate/ipfs.hash', type=Path,
|
'-p', '--pinfile', default=config[name]['pinfile'], type=Path,
|
||||||
help="file to store the current ipfs hash, defaults to ~/.negromate/ipfs.")
|
help="file to store the current ipfs hash, defaults to {}".format(
|
||||||
|
config[name]['pinfile']))
|
||||||
|
|
||||||
|
|
||||||
def run(args):
|
def run(args, **kwargs):
|
||||||
# add to local
|
# add to local
|
||||||
command = [
|
command = [
|
||||||
"ipfs",
|
"ipfs",
|
||||||
|
@ -37,6 +44,13 @@ def run(args):
|
||||||
)
|
)
|
||||||
urllib.request.urlopen(url)
|
urllib.request.urlopen(url)
|
||||||
|
|
||||||
|
# update ipns on server
|
||||||
|
url = "{}/api/v0/name/publish?arg={}&resolve=yes".format(
|
||||||
|
args.api,
|
||||||
|
final_hash,
|
||||||
|
)
|
||||||
|
urllib.request.urlopen(url)
|
||||||
|
|
||||||
# read previous hash and update value
|
# read previous hash and update value
|
||||||
pinfile = args.pinfile.expanduser()
|
pinfile = args.pinfile.expanduser()
|
||||||
if pinfile.exists():
|
if pinfile.exists():
|
||||||
|
|
|
@ -3,28 +3,36 @@ from pathlib import Path
|
||||||
|
|
||||||
name = 'rsync'
|
name = 'rsync'
|
||||||
help_text = 'Sincronize the static web with the server'
|
help_text = 'Sincronize the static web with the server'
|
||||||
|
initial_config = {
|
||||||
|
'host': 'negromate.rocks',
|
||||||
|
'user': 'root',
|
||||||
|
'port': '22',
|
||||||
|
'destination': "/var/www/html",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def options(parser):
|
def options(parser, config, **kwargs):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'song_folder', type=Path,
|
'-s', '--song_folder', type=Path,
|
||||||
help="Folder with the song database.")
|
default=config['global']['song_folder'],
|
||||||
|
help="Folder with the song database, defaults to {}".format(
|
||||||
|
config['global']['song_folder']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'host',
|
'-H', '--host', default=config[name]['host'],
|
||||||
help="Target server.")
|
help="Target server, defaults to {}.".format(config[name]['host']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-u', '--user', default="root",
|
'-u', '--user', default=config[name]['user'],
|
||||||
help="User in the server, defaults to root.")
|
help="User in the server, defaults to {}.".format(config[name]['user']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-p', '--port', default=22, type=int,
|
'-p', '--port', default=config[name]['port'], type=int,
|
||||||
help="Port of the ssh server, defaults to 22.")
|
help="Port of the ssh server, defaults to {}.".format(config[name]['port']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-d', '--destination', default="/var/www/html",
|
'-d', '--destination', default=config[name]['destination'],
|
||||||
help="Folder of the server, defaults to /var/www/html")
|
help="Folder of the server, defaults to {}".format(config[name]['destination']))
|
||||||
|
|
||||||
|
|
||||||
def run(args):
|
def run(args, **kwargs):
|
||||||
contents = str(args.song_folder) + '/'
|
contents = str(args.song_folder.expanduser()) + '/'
|
||||||
destination = "{user}@{host}:{folder}".format(
|
destination = "{user}@{host}:{folder}".format(
|
||||||
user=args.user,
|
user=args.user,
|
||||||
host=args.host,
|
host=args.host,
|
||||||
|
|
|
@ -1,26 +1,36 @@
|
||||||
from http.server import test, SimpleHTTPRequestHandler
|
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
from http.server import test, SimpleHTTPRequestHandler
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
name = 'run'
|
name = 'run'
|
||||||
help_text = 'Start web server to test the website'
|
help_text = 'Start web server to test the website'
|
||||||
|
initial_config = {
|
||||||
|
'port': '8000',
|
||||||
|
'bind': '',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def options(parser):
|
def options(parser, config, **kwargs):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'song_folder', help="Folder with the song database.")
|
'-s', '--song_folder', type=Path,
|
||||||
|
default=config['global']['song_folder'],
|
||||||
|
help="Folder with the song database, defaults to {}".format(
|
||||||
|
config['global']['song_folder']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'port', action='store', default=8000, type=int, nargs='?',
|
'-p', '--port', default=config[name]['port'], type=int,
|
||||||
help='Specify alternate port [default: 8000]')
|
help='Specify alternate port, defaults to {}'.format(config[name]['port']))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--bind', '-b', default='', metavar='ADDRESS',
|
'--bind', '-b', default=config[name]['bind'], metavar='ADDRESS',
|
||||||
help='Specify alternate bind address [default: all interfaces]')
|
help='Specify alternate bind address, defaults to {}'.format(
|
||||||
|
config[name]['bind'] or 'all interfaces',
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
def run(args):
|
def run(args, **kwargs):
|
||||||
Handler = partial(
|
Handler = partial(
|
||||||
SimpleHTTPRequestHandler,
|
SimpleHTTPRequestHandler,
|
||||||
directory=args.song_folder,
|
directory=str(args.song_folder.expanduser()),
|
||||||
)
|
)
|
||||||
|
|
||||||
test(HandlerClass=Handler, port=args.port, bind=args.bind)
|
test(HandlerClass=Handler, port=args.port, bind=args.bind)
|
||||||
|
|
Loading…
Reference in New Issue