Skip to content

Commit

Permalink
Moved bin/ydim* to lib/ydim/ to make the executables work
Browse files Browse the repository at this point in the history
  • Loading branch information
ngiger committed May 10, 2016
1 parent 0726cd6 commit 50c3cc2
Show file tree
Hide file tree
Showing 4 changed files with 160 additions and 0 deletions.
4 changes: 4 additions & 0 deletions bin/ydimd
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ require 'drb'
require 'fileutils'
require 'odba/connection_pool'
require 'odba/drbwrapper'
require 'pg'
require 'dbi'
require 'dbi/version'
require 'dbd/Pg'

$0 = __FILE__

Expand Down
61 changes: 61 additions & 0 deletions lib/ydim/ydim-edit
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env ruby
# ypdmd -- ydim -- 09.11.2005 -- hwyss@ywesee.com

require 'yaml'
require 'syck'
require 'pg'
require 'dbi'
puts "YAML is now #{YAML} in #{__FILE__} at #{__LINE__}"

require 'ydim/server'
require 'ydim/odba'
require 'rclconf'
require 'odba/connection_pool'
require 'irb'

module YDIM
class Server
attr_reader :serv
end
end

ydim_default_dir = File.join(ENV['HOME'], '.ydim')
default_config_files = [
File.join(ydim_default_dir, 'ydimd.yml'),
'/etc/ydim/ydimd.yml',
]
defaults = {
'autoinvoice_hour' => nil,
'config' => default_config_files,
'conf_dir' => File.join(ydim_default_dir, 'conf'),
'currencies' => ['CHF', 'EUR', 'USD'],
'currency_update_hour' => nil,
'data_dir' => File.join(ydim_default_dir, 'data'),
'server_url' => 'druby://localhost:12375',
'db_driver_url' => 'DBI:pg:ydim',
'db_user' => 'ydim',
'db_auth' => '',
'invoice_number_start' => 10000,
'log_level' => 'INFO',
'log_file' => STDOUT,
'mail_sender' => '',
'mail_recipients' => [],
'root_name' => 'Root',
'root_email' => '',
'root_key' => 'root_dsa',
'smtp_from' => '',
'smtp_server' => 'localhost',
'vat_rate' => 8.0,
}
config = RCLConf::RCLConf.new(ARGV, defaults)
config.load(config.config)

ODBA.storage.dbi = ODBA::ConnectionPool.new(config.db_driver_url,
config.db_user, config.db_auth)

logger = Logger.new($stdout)
logger.level = Logger.const_get(config.log_level)
$server = YDIM::Server.new(config, logger)
$needle = $server.serv

IRB.start
34 changes: 34 additions & 0 deletions lib/ydim/ydim-inject
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env ruby

input = if(File.exist?(ARGV.first.to_s))
File.read(ARGV.unshift)
else
STDIN.read
end

require 'yaml'
require 'syck'
puts "YAML is now #{YAML} in #{__FILE__} at #{__LINE__}"
data = YAML.load(input) || exit(-1)

require 'openssl'
require 'rrba/error'
require 'ydim/config'
require 'ydim/client'

config = YDIM::Client::CONFIG
server = DRb::DRbObject.new(nil, config.server_url)
client = YDIM::Client.new(config)
key = OpenSSL::PKey::DSA.new(File.read(config.private_key))

DRb.start_service

client.login(server, key)
invoice = client.create_invoice(data['debitor'])
invoice.currency = data['currency'] || config.currency
invoice.description = data['description'] || config.invoice_description
invoice.payment_period = data['payment_period'] || config.payment_period
invoice.date = Date.today
client.add_items(invoice.unique_id, data['items'])
client.send_invoice(invoice.unique_id)
client.logout
61 changes: 61 additions & 0 deletions lib/ydim/ydimd
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env ruby231
# ypdmd -- ydim -- 12.01.2005 -- hwyss@ywesee.com

require 'yaml'
require 'syck'

require 'ydim/server'
require 'ydim/odba'
require 'logger'
require 'rclconf'
require 'drb'
require 'fileutils'
require 'odba/connection_pool'
require 'odba/drbwrapper'
require 'pg'
require 'dbi'
require 'dbi/version'
require 'dbd/Pg'

$0 = __FILE__

config = YDIM::Server.config

ODBA.storage.dbi = ODBA::ConnectionPool.new(config.db_driver_url,
config.db_user, config.db_auth, :client_encoding => 'LATIN1')
ODBA.cache.setup

DRb.install_id_conv ODBA::DRbIdConv.new

log_file = config.log_file
if(log_file.is_a?(String))
FileUtils.mkdir_p(File.dirname(log_file))
log_file = File.open(log_file, 'a')
at_exit { log_file.close }
end
logger = Logger.new(log_file)
logger.level = Logger.const_get(config.log_level)

server = YDIM::Server.new(config, logger)
server.extend(DRbUndumped)

if(config.detach)
pidfile = '/var/run/ydimd.pid'
File.open(pidfile, 'w') { |fh| fh.puts $$ }
at_exit { File.unlink(pidfile) }
Process.fork and exit!(0)
end

begin
url = config.server_url
url.untaint
DRb.start_service(url, server)
$SAFE = 1
logger.info('start') {
sprintf("starting ydim-server on %s", config.server_url) }
DRb.thread.join
rescue Exception => error
logger.error('fatal') { error }
raise
end

0 comments on commit 50c3cc2

Please sign in to comment.