Add standard
This commit is contained in:
parent
9942c6e6bc
commit
8fd14f1856
22 changed files with 152 additions and 32 deletions
36
.rubocop.yml
Normal file
36
.rubocop.yml
Normal file
|
@ -0,0 +1,36 @@
|
|||
##
|
||||
# Plugins
|
||||
require:
|
||||
- standard
|
||||
|
||||
##
|
||||
# Defaults: standard-rb
|
||||
inherit_gem:
|
||||
standard: config/base.yml
|
||||
|
||||
##
|
||||
# All cops
|
||||
AllCops:
|
||||
TargetRubyVersion: 3.2
|
||||
Include:
|
||||
- lib/*.rb
|
||||
- lib/**/*.rb
|
||||
- test/*.rb
|
||||
- test/**/*.rb
|
||||
- share/bsdcontrol.rb/examples/*.rb
|
||||
|
||||
##
|
||||
# Enabled
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: true
|
||||
|
||||
##
|
||||
# Disabled
|
||||
Layout/ArgumentAlignment:
|
||||
Enabled: false
|
||||
Layout/MultilineMethodCallIndentation:
|
||||
Enabled: false
|
||||
Layout/EmptyLineBetweenDefs:
|
||||
Enabled: false
|
||||
Style/TrivialAccessors:
|
||||
Enabled: false
|
4
Gemfile
4
Gemfile
|
@ -1,2 +1,4 @@
|
|||
source "https://rubygems.org"
|
||||
# frozen_string_literal: true
|
||||
|
||||
source 'https://rubygems.org'
|
||||
gemspec
|
||||
|
|
43
Gemfile.lock
43
Gemfile.lock
|
@ -6,13 +6,55 @@ PATH
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
ast (2.4.2)
|
||||
json (2.7.2)
|
||||
language_server-protocol (3.17.0.3)
|
||||
lint_roller (1.1.0)
|
||||
parallel (1.24.0)
|
||||
parser (3.3.1.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
power_assert (2.0.3)
|
||||
racc (1.7.3)
|
||||
rainbow (3.1.1)
|
||||
rake (13.1.0)
|
||||
rake-compiler (1.2.7)
|
||||
rake
|
||||
regexp_parser (2.9.1)
|
||||
rexml (3.2.6)
|
||||
rubocop (1.62.1)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 1.8, < 3.0)
|
||||
rexml (>= 3.2.5, < 4.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.31.3)
|
||||
parser (>= 3.3.1.0)
|
||||
rubocop-performance (1.20.2)
|
||||
rubocop (>= 1.48.1, < 2.0)
|
||||
rubocop-ast (>= 1.30.0, < 2.0)
|
||||
ruby-progressbar (1.13.0)
|
||||
standard (1.35.1)
|
||||
language_server-protocol (~> 3.17.0.2)
|
||||
lint_roller (~> 1.0)
|
||||
rubocop (~> 1.62.0)
|
||||
standard-custom (~> 1.0.0)
|
||||
standard-performance (~> 1.3)
|
||||
standard-custom (1.0.2)
|
||||
lint_roller (~> 1.0)
|
||||
rubocop (~> 1.50)
|
||||
standard-performance (1.3.1)
|
||||
lint_roller (~> 1.1)
|
||||
rubocop-performance (~> 1.20.2)
|
||||
test-cmd.rb (0.8.0)
|
||||
test-unit (3.6.2)
|
||||
power_assert
|
||||
unicode-display_width (2.5.0)
|
||||
|
||||
PLATFORMS
|
||||
amd64-freebsd-14
|
||||
|
@ -21,6 +63,7 @@ PLATFORMS
|
|||
DEPENDENCIES
|
||||
bsdcontrol.rb!
|
||||
rake-compiler (~> 1.2)
|
||||
standard (~> 1.35)
|
||||
test-cmd.rb (~> 0.8)
|
||||
test-unit (~> 3.6)
|
||||
|
||||
|
|
20
Rakefile.rb
20
Rakefile.rb
|
@ -1,23 +1,25 @@
|
|||
require "bundler/setup"
|
||||
require "rake/extensiontask"
|
||||
Rake::ExtensionTask.new("bsdcontrol.rb")
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'bundler/setup'
|
||||
require 'rake/extensiontask'
|
||||
Rake::ExtensionTask.new('bsdcontrol.rb')
|
||||
task default: %w[clobber compile test]
|
||||
|
||||
namespace :clang do
|
||||
desc "Run clang-format"
|
||||
desc 'Run clang-format'
|
||||
task :format do
|
||||
sh "clang-format -style=file:.clang-format -i ext/bsdcontrol.rb/*.c"
|
||||
sh 'clang-format -style=file:.clang-format -i ext/bsdcontrol.rb/*.c'
|
||||
end
|
||||
end
|
||||
|
||||
namespace :test do
|
||||
desc "Run unprivileged tests"
|
||||
desc 'Run unprivileged tests'
|
||||
task :unprivileged do
|
||||
sh "./bin/run-unprivileged-tests"
|
||||
sh './bin/run-unprivileged-tests'
|
||||
end
|
||||
|
||||
desc "Run superuser tests"
|
||||
desc 'Run superuser tests'
|
||||
task :superuser do
|
||||
sh "./bin/run-superuser-tests"
|
||||
sh './bin/run-superuser-tests'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
require_relative "lib/bsd/control/version"
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'English'
|
||||
require_relative 'lib/bsd/control/version'
|
||||
Gem::Specification.new do |gem|
|
||||
gem.name = "bsdcontrol.rb"
|
||||
gem.authors = ["0x1eef"]
|
||||
gem.email = ["0x1eef@protonmail.com"]
|
||||
gem.homepage = "https://git.hardenedbsd.org/0x1eef/bsdcontrol.rb#readme"
|
||||
gem.name = 'bsdcontrol.rb'
|
||||
gem.authors = ['0x1eef']
|
||||
gem.email = ['0x1eef@protonmail.com']
|
||||
gem.homepage = 'https://git.hardenedbsd.org/0x1eef/bsdcontrol.rb#readme'
|
||||
gem.version = BSD::Control::VERSION
|
||||
gem.licenses = ["0BSD"]
|
||||
gem.files = `git ls-files`.split($/)
|
||||
gem.require_paths = ["lib"]
|
||||
gem.licenses = ['0BSD']
|
||||
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
||||
gem.require_paths = ['lib']
|
||||
gem.extensions = %w[ext/bsdcontrol.rb/extconf.rb]
|
||||
gem.summary = "Ruby bindings for libhbsdcontrol"
|
||||
gem.summary = 'Ruby bindings for libhbsdcontrol'
|
||||
gem.description = gem.summary
|
||||
gem.add_development_dependency "rake-compiler", "~> 1.2"
|
||||
gem.add_development_dependency "test-unit", "~> 3.6"
|
||||
gem.add_development_dependency "test-cmd.rb", "~> 0.8"
|
||||
gem.add_development_dependency 'rake-compiler', '~> 1.2'
|
||||
gem.add_development_dependency 'standard', '~> 1.35'
|
||||
gem.add_development_dependency 'test-cmd.rb', '~> 0.8'
|
||||
gem.add_development_dependency 'test-unit', '~> 3.6'
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module BSD::Control
|
||||
require_relative "control/context"
|
||||
require_relative "control/feature"
|
||||
|
@ -40,6 +42,6 @@ module BSD::Control
|
|||
# Returns an instance of {BSD::Control::Feature BSD::Control::Feature}.
|
||||
def self.feature(name)
|
||||
feature = available_features.find { _1.name == name.to_s }
|
||||
feature ? feature : raise(Error, "feature '#{name}' wasn't found")
|
||||
feature || raise(Error, "feature '#{name}' wasn't found")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module BSD::Control
|
||||
##
|
||||
# The {BSD::Control::Context BSD::Control::Context} class encapsulates
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module BSD::Control
|
||||
class Feature < Struct.new(:name, :context)
|
||||
##
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module BSD
|
||||
module Control
|
||||
VERSION = "0.1.1"
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module BSD
|
||||
require_relative "bsd/control"
|
||||
require_relative "bsdcontrol.rb.so"
|
||||
|
|
2
share/bsdcontrol.rb/examples/1_available_features.rb
Normal file → Executable file
2
share/bsdcontrol.rb/examples/1_available_features.rb
Normal file → Executable file
|
@ -1,4 +1,6 @@
|
|||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Required privileges: user, superuser
|
||||
require "bsdcontrol"
|
||||
BSD::Control
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "setup"
|
||||
|
||||
class ReadmeExamplesTest < Test::Unit::TestCase
|
||||
|
@ -5,14 +7,14 @@ class ReadmeExamplesTest < Test::Unit::TestCase
|
|||
require "test/cmd"
|
||||
|
||||
def test_available_features
|
||||
result = cmd(RbConfig.ruby, readme_example('1_available_features.rb'))
|
||||
result = cmd(RbConfig.ruby, readme_example("1_available_features.rb"))
|
||||
assert_equal true, result.status.success?
|
||||
result.each_line { assert_match %r|The [a-zA-Z0-9_]+ feature is available|, _1 }
|
||||
result.each_line { assert_match %r{The [a-zA-Z0-9_]+ feature is available}, _1 }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def readme_example(name)
|
||||
File.join(Dir.getwd, 'share', 'bsdcontrol.rb', 'examples', name)
|
||||
File.join(Dir.getwd, "share", "bsdcontrol.rb", "examples", name)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require "bundler/setup"
|
||||
require "test/unit"
|
||||
require "bsdcontrol"
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class DisableFeatureTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
require "fileutils"
|
||||
include FileUtils
|
||||
|
||||
def test_disable_pageexec
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class EnableFeatureTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
require "fileutils"
|
||||
include FileUtils
|
||||
|
||||
def test_enable_pageexec
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class FeatureStatusTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
require "fileutils"
|
||||
include FileUtils
|
||||
|
||||
def test_pageexec_sysdef_status
|
||||
|
@ -21,7 +23,6 @@ module BSD::Control
|
|||
rm(file)
|
||||
end
|
||||
|
||||
|
||||
def test_pageexec_disabled_status
|
||||
touch(file)
|
||||
BSD::Control.feature(:pageexec).disable!(file)
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class SysDefFeatureTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
require "fileutils"
|
||||
include FileUtils
|
||||
|
||||
def test_sysdef_pageexec
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class AvailableFeaturesTest < Test::Unit::TestCase
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class DisableFeatureTest < Test::Unit::TestCase
|
||||
require 'fileutils'
|
||||
require "fileutils"
|
||||
include FileUtils
|
||||
|
||||
def test_disable_pageexec_nonexistent_file
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class EnableFeatureTest < Test::Unit::TestCase
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class FeatureTest < Test::Unit::TestCase
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../setup"
|
||||
module BSD::Control
|
||||
class SysDefTest < Test::Unit::TestCase
|
||||
|
|
Loading…
Reference in a new issue