Commit 184af33a authored by Michał Siwek's avatar Michał Siwek

Implement building from source, add vim scenario as a test package

parent 549e336f
......@@ -13,6 +13,7 @@ CREW_PREFIX = '/usr/local'
CREW_LIB_PATH = CREW_PREFIX + '/lib/crew/'
CREW_CONFIG_PATH = CREW_PREFIX + '/etc/crew/'
CREW_BREW_DIR = CREW_PREFIX + '/tmp/crew/'
CREW_DEST_DIR = CREW_BREW_DIR + '/dest'
$LOAD_PATH.push CREW_LIB_PATH
......@@ -48,9 +49,14 @@ def download
end
uri = URI.parse url
filename = File.basename(uri.path)
if source
sha1sum = @pkg.source_sha1
else
sha1sum = @pkg.binary_sha1[@device[:architecture]]
end
Dir.chdir CREW_BREW_DIR do
system('wget', '--content-disposition', url)
abort 'Checksum mismatch :/ try again' unless Digest::SHA1.hexdigest( File.read("./#{filename}") ) == @pkg.binary_sha1[@device[:architecture]]
abort 'Checksum mismatch :/ try again' unless Digest::SHA1.hexdigest( File.read("./#{filename}") ) == sha1sum
end
puts "Archive downloaded"
return {source: source, filename: filename}
......@@ -117,22 +123,38 @@ def install
unless @pkg.is_fake?
meta = download
Dir.chdir CREW_BREW_DIR do
puts "Unpacking archive, this may take a while..."
system "tar", "zxf", meta[:filename]
if meta[:source] == true
puts "Building from source, this may take a while..."
sytem "cd *"
@pkg.build
system "rm -rf", CREW_DEST_DIR + "/*" #wipe crew destdir
puts "Installing..."
@pkg.install
else
Dir.chdir CREW_BREW_DIR do
puts "Unpacking archive, this may take a while..."
system "tar", "zxf", meta[:filename]
Dir.chdir CREW_DEST_DIR do
#create directory list
system "find . -type f > ../filelist"
system "find . -type l >> ../filelist"
system "cut -c2- ../filelist > filelist"
#create file list
system "find . -type d > ../dlist"
system "cut -c2- ../dlist > dlistcut"
system "tail -n +2 dlistcut > dlist"
#remove temporary files
system "rm dlistcut ../dlist ../filelist"
#move result files and directories to brew dir
system "mv * ../"
end
end
puts "Installing..."
FileUtils.mv './dlist', CREW_CONFIG_PATH + "meta/#{@pkg.name}.directorylist"
FileUtils.mv './filelist', CREW_CONFIG_PATH + "meta/#{@pkg.name}.filelist"
end
Dir.chdir CREW_CONFIG_PATH do
File.open("meta/#{@pkg.name}.directorylist").each_line do |line|
system "mkdir", "-p", line.chomp
......
......@@ -3,6 +3,7 @@ CREW_PREFIX=/usr/local
CREW_LIB_PATH=$CREW_PREFIX/lib/crew/
CREW_CONFIG_PATH=$CREW_PREFIX/etc/crew/
CREW_BREW_DIR=$CREW_PREFIX/tmp/crew/
CREW_DEST_DIR=$CREW_BREW_DIR/dest
CREW_PACKAGES_PATH=$CREW_LIB_PATH/packages
user=$(whoami)
......@@ -12,6 +13,7 @@ sudo mkdir -p $CREW_LIB_PATH && sudo chown -R $user:$user $CREW_LIB_PATH
sudo mkdir -p $CREW_CONFIG_PATH && sudo chown -R $user:$user $CREW_CONFIG_PATH
sudo mkdir -p $CREW_CONFIG_PATH/meta && sudo chown -R $user:$user $CREW_CONFIG_PATH/meta
sudo mkdir -p $CREW_BREW_DIR && sudo chown -R $user:$user $CREW_BREW_DIR
sudo mkdir -p $CREW_DEST_DIR && sudo chown -R $user:$user $CREW_DEST_DIR
sudo mkdir -p $CREW_PACKAGES_PATH && sudo chown -R $user:$user $CREW_PACKAGES_PATH
#cd into the brew directory, everything will happen there
......
require 'package_helpers'
class Package
property :version, :binary_url, :binary_sha1, :source_url, :is_fake
property :version, :binary_url, :binary_sha1, :source_url, :source_sha1, :is_fake
class << self
attr_reader :dependencies, :is_fake
......@@ -22,4 +22,8 @@ class Package
def self.is_fake?
@is_fake
end
def self.build
end
end
require 'package'
class Vim < Package
version '7.3'
version '7.4'
source_url 'ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2'
source_sha1 '601abf7cc2b5ab186f40d8790e542f86afca86b7'
binary_url ({
i686: 'https://dl.dropboxusercontent.com/s/s6ya4cyeee7ywo9/vim-7.3-chromeos-i686.tar.gz?token_hash=AAEI_tXjoKfOGEWKN3fajxskcCxlOjxuANGIvu-nSABANQ&dl=1'
})
......@@ -10,4 +12,12 @@ class Vim < Package
})
depends_on 'ncurses'
def self.build
system "make"
end
def self.install
system "make", "DESTDIR=#{CREW_DEST_DIR}", "install"
end
end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment