From 055744e7f74b47b0f199629286b1aa8a21d9be3e Mon Sep 17 00:00:00 2001 From: Artur Gurgul1 Date: Thu, 7 Aug 2025 16:29:11 +0200 Subject: [PATCH] calling add user service --- .../postgresql/postgresql.service.erb | 2 +- lib/execute.rb | 30 +++++++++++++++++-- lib/setup/postgresql.rb | 6 +++- lib/user.rb | 5 +++- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/lib/data/templates/postgresql/postgresql.service.erb b/lib/data/templates/postgresql/postgresql.service.erb index 3ddaa20..0bc60d9 100644 --- a/lib/data/templates/postgresql/postgresql.service.erb +++ b/lib/data/templates/postgresql/postgresql.service.erb @@ -1,5 +1,5 @@ [Unit] -Description=PostgreSQL <%= version %> database server +Description=PostgreSQL <%= version %> After=network.target [Service] diff --git a/lib/execute.rb b/lib/execute.rb index f5c80af..09e614d 100644 --- a/lib/execute.rb +++ b/lib/execute.rb @@ -25,6 +25,28 @@ module Execute @version = version end end + + class UserInstallContext + attr_accessor :user_name, :type, :can_login + + def initialize(user_name, type = :user, can_login = nil) + @user_name = user_name + @type = type + + if can_login == nil + case type + when :service + @can_login = false + when :user + @can_login = true + else + raise "Can not create user for type: #{type}" + end + else + @can_login = can_login + end + end + end def dependency(name) puts "Checking for #{name}..." @@ -91,8 +113,12 @@ module Execute end end - def user(name) - puts "Creating user: #{name}" + def user(*users) + require 'user' + users.each do |name| + context = UserInstallContext.new(name, :user) + User.install(context) + end end def install(*packages) diff --git a/lib/setup/postgresql.rb b/lib/setup/postgresql.rb index fbbb190..4e23e57 100644 --- a/lib/setup/postgresql.rb +++ b/lib/setup/postgresql.rb @@ -1,6 +1,8 @@ module Setup require_relative '../templates' + require_relative "../user" + require_relative "../execute" # dat execute postgres # example.rcp @@ -28,8 +30,10 @@ module Setup version: context.version, database_dir: context.data_dir ) - puts service + # puts service + user_context = Execute::UserInstallContext.new(context.user_name, :service) + User.install(user_context) end end end diff --git a/lib/user.rb b/lib/user.rb index 0e36e36..230cfbd 100644 --- a/lib/user.rb +++ b/lib/user.rb @@ -1,5 +1,8 @@ module User + def self.install(context) + puts "Creating #{context.type}: #{context.user_name}" + end -end \ No newline at end of file +end