feat: read version from shards.yml

This commit is contained in:
Glenn Y. Rolland 2023-12-24 18:30:51 +01:00
parent 5ad6018a88
commit 5d15886c27
5 changed files with 83 additions and 69 deletions

View file

@ -8,3 +8,7 @@ shards:
git: https://github.com/kanezoh/mechanize.cr.git git: https://github.com/kanezoh/mechanize.cr.git
version: 0.2.0 version: 0.2.0
version_from_shard:
git: https://github.com/hugopl/version_from_shard.git
version: 1.2.5

View file

@ -16,6 +16,8 @@ dependencies:
mechanize: mechanize:
github: Kanezoh/mechanize.cr github: Kanezoh/mechanize.cr
version: "~> 0.2.0" version: "~> 0.2.0"
version_from_shard:
github: hugopl/version_from_shard
# dependencies: # dependencies:
# pg: # pg:

66
src/cli.cr Normal file
View file

@ -0,0 +1,66 @@
require "./config"
require "./version"
require "./providers/signal_spam"
require "http/client"
require "option_parser"
require "file_utils"
require "mechanize"
# Classe pour gérer les interactions avec Signal-Spam
module BulkBarrage
class Cli
def initialize
@option_parser = OptionParser.new do |parser|
parser.banner = [
"#{PROGRAM_NAME} v#{VERSION}",
"Usage: bulkbarrage [options] [command] [args]"
].join("\n")
parser.on("configure", "Initialize the configuration") do
init_config
end
parser.on("report", "Process and report spam email (default: from STDIN)") do
process_email_spam
end
parser.on("--help", "-h", "show this help") do
puts parser
end
end
end
def parse_arguments(args : Array(String))
@option_parser.parse(args)
rescue e : OptionParser::Exception
puts e.message
puts @option_parser
exit(1)
end
private def init_config
print "Enter username: "
username = gets.try &.strip || "anonymous"
print "Enter password: "
password = gets.try &.strip || "anonymous"
create_config_file(username, password)
puts "Configuration file created."
end
private def process_email_spam
email_spam = STDIN.gets_to_end
signalspam = Providers::SignalSpam.new
signalspam.process(email_spam)
puts "Email spam processed."
end
private def create_config_file(username : String, password : String)
signalspam = Providers::SignalSpam.new
signalspam.create_config_file(username, password)
end
end
end

View file

@ -1,69 +1,4 @@
require "./config" require "./cli"
require "./providers/signal_spam"
require "http/client" client = BulkBarrage::Cli.new
require "option_parser"
require "file_utils"
require "mechanize"
# Nom du script et version
SCRIPT_NAME = "BulkBarrage"
SCRIPT_VERSION = "0.1.0"
# Classe pour gérer les interactions avec Signal-Spam
class SignalSpamCtl
def initialize
@option_parser = OptionParser.new do |parser|
parser.banner = [
"#{SCRIPT_NAME} v#{SCRIPT_VERSION}",
"Usage: bulkbarrage [options] [command] [args]"
].join("\n")
parser.on("configure", "Initialise the configuration") do
init_config
end
parser.on("report", "Process and report spam email (default: from STDIN)") do
process_email_spam
end
parser.on("--help", "-h", "show this help") do
puts parser
end
end
end
def parse_arguments(args : Array(String))
@option_parser.parse(args)
rescue e : OptionParser::Exception
puts e.message
puts @option_parser
exit(1)
end
private def init_config
print "Enter username: "
username = gets.try &.strip || "anonymous"
print "Enter password: "
password = gets.try &.strip || "anonymous"
create_config_file(username, password)
puts "Configuration file created."
end
private def process_email_spam
email_spam = STDIN.gets_to_end
signalspam = Providers::SignalSpam.new
signalspam.process(email_spam)
puts "Email spam processed."
end
private def create_config_file(username : String, password : String)
signalspam = Providers::SignalSpam.new
signalspam.create_config_file(username, password)
end
end
client = SignalSpamCtl.new
client.parse_arguments(ARGV) client.parse_arguments(ARGV)

View file

@ -1,4 +1,11 @@
require "version_from_shard"
module BulkBarrage
PROGRAM_NAME = "BulkBarrage"
VersionFromShard.declare
end
# Nom du script et version # Nom du script et version
SCRIPT_NAME = "SignalSpamReporter" # SCRIPT_NAME = "SignalSpamReporter"
SCRIPT_VERSION = "1.2" # SCRIPT_VERSION = "1.2"