From 9581a01c87a7d8bf228bdec7d4f06bf8a3fed3ec Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 22 Nov 2015 01:05:05 +0000 Subject: introduce dtas-mlib for music library functions Eventually this will support searching and be the basis of an mpd-compatible proxy in front of dtas-player --- bin/dtas-mlib | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 bin/dtas-mlib (limited to 'bin') diff --git a/bin/dtas-mlib b/bin/dtas-mlib new file mode 100755 index 0000000..0e17d91 --- /dev/null +++ b/bin/dtas-mlib @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby +# Copyright (C) 2015 all contributors +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-3.0.txt) +usage = "#$0 [-d DATABASE-URI] ACTION [DIRECTORY]" +Thread.abort_on_exception = $stderr.sync = $stdout.sync = true +require 'dtas/mlib' +require 'optparse' +path = '~/.dtas/mlib.sqlite' +db = File.expand_path(path) +OptionParser.new('', 24, ' ') do |op| + op.banner = usage + op.on('-d', '--database ', "database (default: #{path}") do |d| + db = d + end + op.on('-h', '--help') do + puts(op.to_s) + exit + end + op.parse!(ARGV) +end + +unless db.include?('://') + dir = File.dirname(db) + unless File.directory?(dir) + require 'fileutils' + FileUtils.mkpath(dir) + end +end + +case action = ARGV.shift +when 'update' + directory = ARGV.shift or abort "DIRECTORY required\n#{usage}" +else + abort usage +end + +mlib = DTAS::Mlib.new(db) +mlib.migrate +mlib.__send__(action, directory) -- cgit v1.2.3-24-ge0c7