loopless 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -2
- data/darwin/loopless +0 -0
- data/lib/loopless.rb +47 -10
- data/linux/loopless +0 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43f36a2845005a4c591bec8e591b6cc824fdf36
|
4
|
+
data.tar.gz: afa83f16ca670d2c59d9172132d7feac2f7d3ecb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adac537e193ef467e17fef67b8122d278ffe5d4217c4af75717d71eeb998cf7d6674df2f4daad78cc0783cab1ddb8a8f23180120167b4ac1807ac453718c40cb
|
7
|
+
data.tar.gz: 2bf782f913f39e7f70aea787519a4efc8ae373a646a359035503056f9420e53f4894cb436683cfec27b4633b3e70853e18e1b4475a0bf44c16d4263773e54a77
|
data/README.md
CHANGED
@@ -10,9 +10,12 @@ Currently supported on Linux and Mac OS X.
|
|
10
10
|
Synopsis
|
11
11
|
--------
|
12
12
|
|
13
|
+
On the command line
|
14
|
+
|
13
15
|
loopless disk.img create 10000000000 # 10GB
|
14
16
|
loopless disk.img create-gpt
|
15
17
|
loopless disk.img create-part
|
18
|
+
loopless disk.img part-info
|
16
19
|
loopless disk.img:1 mkfs
|
17
20
|
loopless disk.img:1 write /syslinux.cfg 600 <<< "SAY Hello World!"
|
18
21
|
loopless disk.img:1 syslinux
|
@@ -21,6 +24,21 @@ Synopsis
|
|
21
24
|
loopless disk.img install-mbr
|
22
25
|
loopless disk.img create-vmdk disk.vmdk
|
23
26
|
|
27
|
+
Or in Ruby
|
28
|
+
|
29
|
+
require 'loopless'
|
30
|
+
Loopless.create("disk.img", 10000000000)
|
31
|
+
Loopless.create_gpt("disk.img")
|
32
|
+
Loopless.create_part("disk.img")
|
33
|
+
p Loopless.part_info("disk.img")
|
34
|
+
Loopless.mkfs("disk.img", 1)
|
35
|
+
Loopless.write("disk.img", 1, '/syslinux.cfg', '600', "SAY Hello World!" )
|
36
|
+
Loopless.syslinux("disk.img", 1)
|
37
|
+
p Loopless.ls("disk.img",1)
|
38
|
+
Loopless.set_bootable("disk.img",1, true)
|
39
|
+
Loopless.install_mbr("disk.img")
|
40
|
+
Loopless.create_vmdk("disk.img", 'disk.vmdk')
|
41
|
+
|
24
42
|
Usage
|
25
43
|
-----
|
26
44
|
|
@@ -48,7 +66,7 @@ loopless is comprised of a number of subcommands:
|
|
48
66
|
Sets or unsets the legacy_boot GPT flag on the specified partition. This flag is used by syslinux
|
49
67
|
to determine the boot partition.
|
50
68
|
|
51
|
-
###
|
69
|
+
### Ext4
|
52
70
|
|
53
71
|
PART may either be a single number indicating GPT part number or a comma separated byte range
|
54
72
|
|
@@ -76,7 +94,7 @@ FILE must be the absolute path to file, including the initial '/'
|
|
76
94
|
recursively chmod parent directories with MODE + the executable bit set where the read bit is
|
77
95
|
(e.g. 640 would become 750 for parent directories ).
|
78
96
|
|
79
|
-
|
97
|
+
### Syslinux
|
80
98
|
|
81
99
|
* `loopless FILE:PART syslinux`
|
82
100
|
|
data/darwin/loopless
CHANGED
Binary file
|
data/lib/loopless.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
module Loopless
|
2
|
+
|
2
3
|
class Error < RuntimeError
|
3
4
|
attr_reader :code
|
4
5
|
def initialize(code)
|
@@ -27,54 +28,90 @@ module Loopless
|
|
27
28
|
|
28
29
|
def self.create(file,size)
|
29
30
|
run file, 'create', size.to_s
|
31
|
+
nil
|
30
32
|
end
|
31
33
|
|
32
34
|
def self.create_vmdk(file,vmdk_path)
|
33
35
|
run file, 'create-vmdk', vmdk_path
|
36
|
+
nil
|
34
37
|
end
|
35
38
|
|
36
39
|
def self.create_gpt(file)
|
37
40
|
run file, 'create-gpt'
|
41
|
+
nil
|
38
42
|
end
|
39
43
|
|
40
44
|
def self.create_part(file, part_num: nil, start: nil, size: nil, label: nil)
|
41
45
|
run file, 'create-part', *[part_num,start,size,label].compact.map(&:to_s)
|
46
|
+
nil
|
42
47
|
end
|
43
48
|
|
44
49
|
def self.part_info(file)
|
45
|
-
run
|
50
|
+
run(file, 'part-info').split("\n").map do |l|
|
51
|
+
fields = l.split("\t")
|
52
|
+
{
|
53
|
+
number: fields[0].to_i,
|
54
|
+
start: fields[1].to_i,
|
55
|
+
size: fields[2].to_i,
|
56
|
+
bootable: fields[3] == 'true',
|
57
|
+
label: fields[4] != '' ? fields[4] : nil
|
58
|
+
}
|
59
|
+
end
|
46
60
|
end
|
47
61
|
|
48
62
|
def self.install_mbr(file)
|
49
63
|
run file, 'install-mbr'
|
64
|
+
nil
|
50
65
|
end
|
51
66
|
|
52
67
|
def self.set_bootable(file,part_num,value = true)
|
53
|
-
run "#{file}:#{part_num}" "
|
68
|
+
run "#{file}:#{part_num}", "set-bootable", (value ? 'true' : 'false')
|
69
|
+
nil
|
54
70
|
end
|
55
71
|
|
56
|
-
def self.syslinux(file,part)
|
72
|
+
def self.syslinux(file,part=nil)
|
57
73
|
run_part file,part,'syslinux'
|
74
|
+
nil
|
58
75
|
end
|
59
76
|
|
60
|
-
def self.mkfs(file,part)
|
77
|
+
def self.mkfs(file,part=nil)
|
61
78
|
run_part file,part,'mkfs'
|
79
|
+
nil
|
62
80
|
end
|
63
81
|
|
64
|
-
def self.ls(file,part)
|
65
|
-
run_part
|
82
|
+
def self.ls(file,part=nil)
|
83
|
+
run_part(file,part,'ls').split("\n")
|
66
84
|
end
|
67
85
|
|
68
|
-
def self.rm(file,part,path)
|
86
|
+
def self.rm(file,part=nil,path)
|
69
87
|
run_part file,part,'rm',fix_path(path)
|
88
|
+
nil
|
70
89
|
end
|
71
90
|
|
72
|
-
def self.read(file,part,path)
|
91
|
+
def self.read(file,part=nil,path)
|
73
92
|
run_part file,part,'read',fix_path(path)
|
74
93
|
end
|
75
94
|
|
76
|
-
def self.write(file
|
77
|
-
|
95
|
+
def self.write(file,*args)#part=nil,path,perm='644',input)
|
96
|
+
part = nil
|
97
|
+
perm = '644'
|
98
|
+
case args.size
|
99
|
+
when 2 then path,input = args
|
100
|
+
when 3
|
101
|
+
has_perm = args[1].to_s =~ /^[0-8]{3}$/
|
102
|
+
has_part = args[0].is_a?(Integer) || args[0].is_a?(Array)
|
103
|
+
if has_perm && !has_part
|
104
|
+
path,perm,input=args
|
105
|
+
elsif !has_perm && has_part
|
106
|
+
part,path,input=args
|
107
|
+
else
|
108
|
+
raise ArgumentError.new "Ambigious arguments"
|
109
|
+
end
|
110
|
+
when 4
|
111
|
+
part,path,perm,input = args
|
112
|
+
end
|
113
|
+
run_part file,part,'write',fix_path(path),perm.to_s, in: input
|
114
|
+
nil
|
78
115
|
end
|
79
116
|
|
80
117
|
def self.fix_path(path)
|
data/linux/loopless
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: loopless
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Edlefsen
|
@@ -23,7 +23,7 @@ files:
|
|
23
23
|
- darwin/loopless
|
24
24
|
- lib/loopless.rb
|
25
25
|
- linux/loopless
|
26
|
-
homepage: https://gitlab.xforty.com
|
26
|
+
homepage: https://gitlab.xforty.com/projects/loopless
|
27
27
|
licenses:
|
28
28
|
- GPL-2.0
|
29
29
|
metadata: {}
|