Skip to content

Instantly share code, notes, and snippets.

View takuma-saito's full-sized avatar

takuma.saito takuma-saito

  • 03:31 (UTC +09:00)
View GitHub Profile
@takuma-saito
takuma-saito / appstore-sign.sh
Last active August 20, 2020 08:52
appstore-sign.sh
### [apple store, appstore]
# キーと公開鍵認証リクエストを作成
$ openssl req -newkey rsa:2048 -out server.csr -keyout server.pem -days 365 -subj '/emailAddress=your_mail_address@gmail.com/CN=YOUR NAME/C=JP' -batch -nodes
# キーのインポート
$ security import kaigi.pem
$ mv ~/Downloads/ios_distribution.cer kaigi.cer
$ openssl x509 -in kaigi.cer -inform DER -out kaigi.cer.pub -outform pem
@takuma-saito
takuma-saito / sign.sh
Last active August 20, 2020 00:27
ore-ore-sign
$ openssl req -new -nodes -newkey rsa:2048 -keyout server.key -batch -subj '/C=JP/ST=Tokyo/L=Tokyo/O=Company/OU=Web/CN=example.jp' > server.csr # 組織の場合
$ openssl req -new -nodes -newkey rsa:2048 -keyout server.key -batch -subj '/emailAddress=your_mail_address@gmail.com/CN=YOUR NAME/C=JP' > server.csr # 個人の場合
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
$ diff <(openssl x509 -modulus -in server.crt | grep Modulus) <(openssl rsa -modulus -in server.key | grep Modulus)
# csr 確認
$ openssl req -text -in server.csr
# crt 確認
$ openssl x509 -text -in server.csr
@takuma-saito
takuma-saito / install_exporter.sh
Last active July 21, 2020 16:14
install_exporter.sh
#!/bin/bash -xe
# update apt packages
sudo apt-get -o Acquire::Check-Valid-Until=false update
##
# node exporter
##
version=1.0.1
@takuma-saito
takuma-saito / traversable.rb
Created May 12, 2020 16:41
traversable.rb
require 'uri'
require 'open-uri'
require 'nokogiri'
module Traversable
Target = Struct.new(:url, :depth, keyword_init: true)
def traverse(root, max_depth = 2)
root_url = URI.parse(root)
host = root_url.host
targets = [Target.new(url: root_url, depth: 0)]
@takuma-saito
takuma-saito / url_mappable.rb
Created May 12, 2020 15:12
url_mappable.rb
require 'open-uri'
module Concern
def self.extended(base)
base.instance_variable_set(:@__deps, [])
end
def included(base)
if (deps = base.instance_variable_get(:@__deps))
deps << self
else
@takuma-saito
takuma-saito / validatable.rb
Created May 12, 2020 14:13
validatable.rb
module Validatable
def self.included(base)
base.extend ClassMethods
end
module ClassMethods
def validate(attribute, &block)
attr_accessor attribute unless defined?(attribute)
alias_method "#{attribute}_orig=", "#{attribute}="
define_method("#{attribute}=") do |val|
self.__send__("#{attribute}_orig=", val) if block.(val)
@takuma-saito
takuma-saito / delegatable.rb
Created May 12, 2020 13:44
delegatable.rb
module Delegatable
def self.included(base)
base.class_eval do
def self.delegate_method(method, to)
define_method(method) do |*args|
instance_variable_get(to).__send__(method, *args)
end
end
end
end
class String
def underscore
self.scan(/[A-Z][a-z]+/).map { |name| name.tr('A-Z', 'a-z') }.join("_")
end
end
class Crumb
def initialize(mgr, &block)
@mgr = mgr
@block = block
end
@takuma-saito
takuma-saito / gmail_search.rb
Created May 3, 2020 15:49
Gmail の検索条件を ruby の DSL で扱えるようにした
class Gmail
def initialize(&block)
@block = block
@items = []
end
def run
self.instance_eval(&@block)
@items.join(" ")
end
def cond(condition, &block)
@takuma-saito
takuma-saito / has_secure_password.rb
Last active May 3, 2020 12:49
has_secure_password.rb
require 'digest/md5'
module SecurablePassword
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def has_secure_password(name = :password)
include HasSecurePassword.new(name)
end