mirror of
https://github.com/sunaku/tamzen-font.git
synced 2024-08-16 15:20:32 +03:00
add rake docker
for consistent build with Docker
This commit is contained in:
parent
3a767955f8
commit
2201fc4a9e
@ -22,7 +22,3 @@ WORKDIR /opt
|
|||||||
COPY Gemfile .
|
COPY Gemfile .
|
||||||
COPY Gemfile.lock .
|
COPY Gemfile.lock .
|
||||||
RUN bundler install
|
RUN bundler install
|
||||||
# RUN vncserver -SecurityTypes None \
|
|
||||||
# && export DISPLAY=$(ls -t ~/.vnc/*.pid | grep -oPm1 ':\d+') \
|
|
||||||
# && bundler exec rake clobber default
|
|
||||||
# COPY /opt .
|
|
||||||
|
12
README.md
12
README.md
@ -250,20 +250,28 @@ fonts when run inside a shell that is attached to [the URxvt terminal][4].
|
|||||||
Building
|
Building
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
### Docker method
|
||||||
|
|
||||||
|
If you have Docker available, use the convenient `rake docker` command:
|
||||||
|
|
||||||
|
rake docker
|
||||||
|
|
||||||
|
### Manual method
|
||||||
|
|
||||||
You can build the Tamzen fonts for yourself by running these commands:
|
You can build the Tamzen fonts for yourself by running these commands:
|
||||||
|
|
||||||
bundle exec rake # build things only when necessary
|
bundle exec rake # build things only when necessary
|
||||||
bundle exec rake clobber # destroy everything that we built
|
bundle exec rake clobber # destroy everything that we built
|
||||||
bundle exec rake clobber default # rebuild everything from scratch
|
bundle exec rake clobber default # rebuild everything from scratch
|
||||||
|
|
||||||
### Requirements
|
But first, you'll need to install these dependencies (assuming Debian):
|
||||||
|
|
||||||
# NOTE: the "xfonts-utils" package provides both bdftopcf(1) and fonttosfnt(1)
|
# NOTE: the "xfonts-utils" package provides both bdftopcf(1) and fonttosfnt(1)
|
||||||
sudo apt-get install ruby git imagemagick xfonts-utils bdf2psf default-jre gbdfed
|
sudo apt-get install ruby git imagemagick xfonts-utils bdf2psf default-jre gbdfed
|
||||||
gem install bundler
|
gem install bundler
|
||||||
bundle install
|
bundle install
|
||||||
|
|
||||||
Requirements for [bitmap-font-patcher][6]:
|
Similarly, if you've opted to use [bitmap-font-patcher][6] integration:
|
||||||
|
|
||||||
sudo apt-get install python python-fontforge python-pip python-dev libfreetype6-dev
|
sudo apt-get install python python-fontforge python-pip python-dev libfreetype6-dev
|
||||||
pip install --user bdflib
|
pip install --user bdflib
|
||||||
|
46
Rakefile
46
Rakefile
@ -1,4 +1,5 @@
|
|||||||
require 'tempfile'
|
require 'tempfile'
|
||||||
|
require 'shellwords'
|
||||||
require 'rake/clean'
|
require 'rake/clean'
|
||||||
|
|
||||||
task 'default' => %w[
|
task 'default' => %w[
|
||||||
@ -10,6 +11,51 @@ task 'default' => %w[
|
|||||||
.screenshots
|
.screenshots
|
||||||
]
|
]
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# docker
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DOCKER_IMAGE = 'tamzen-font'
|
||||||
|
|
||||||
|
task :docker => 'docker:container'
|
||||||
|
|
||||||
|
task 'docker:image' => %w[ Dockerfile Gemfile Gemfile.lock ] do |t|
|
||||||
|
sh "tar -cf- #{t.prerequisites.shelljoin} | docker build -t #{DOCKER_IMAGE} -"
|
||||||
|
end
|
||||||
|
|
||||||
|
task 'docker:container' => 'docker:image' do
|
||||||
|
container = `
|
||||||
|
docker create \
|
||||||
|
-v #{Dir.pwd.shellescape}:/run/input #{DOCKER_IMAGE} \
|
||||||
|
sleep infinity
|
||||||
|
`.chomp
|
||||||
|
raise unless $?.success?
|
||||||
|
|
||||||
|
begin
|
||||||
|
sh "docker start #{container}"
|
||||||
|
sh "docker exec #{container} rake -f /run/input/Rakefile docker:exec"
|
||||||
|
sh "docker cp #{container}:/opt _build"
|
||||||
|
ensure
|
||||||
|
sh "docker rm -f #{container}"
|
||||||
|
end
|
||||||
|
|
||||||
|
sh "rsync -auv _build/ ./ --exclude=_build"
|
||||||
|
end
|
||||||
|
CLOBBER.include %w[ _build ]
|
||||||
|
|
||||||
|
task 'docker:exec' do
|
||||||
|
raise unless Dir.pwd == '/opt'
|
||||||
|
sh "cp -pRT /run/input ."
|
||||||
|
|
||||||
|
ENV['DISPLAY'] = ':1'
|
||||||
|
sh "vncserver -SecurityTypes None $DISPLAY"
|
||||||
|
begin
|
||||||
|
sh "bundle exec rake clobber default"
|
||||||
|
ensure
|
||||||
|
system "vncserver -kill $DISPLAY" # exits nonzero
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# bitmap
|
# bitmap
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user