예제 #1
0
def build(script, source, target=None):
    filesystem = os.path.exists(os.path.join(source, 'knoppix'))
    minirt = os.path.exists(os.path.join(source, 'minirt'))
    
    if target is None:
        target = os.path.join(source, 'remaster.iso')
    
    @progress
    def prepare(progress):
        remove = [('remaster.iso',)]
        if filesystem:
            remove.append(('master', 'KNOPPIX', 'KNOPPIX'))
        if minirt:
            remove.append(('master', 'boot', 'isolinux', 'minirt.gz'))
            remove.append(('master', 'boot', 'isolinux', 'minirt'))
        for path in remove:
            path = os.path.join(source, *path)
            if os.path.exists(path):
                os.remove(path)
                
    @progress
    def minirt_files(progress):
        with open(os.path.join(source, 'minirt.files'), 'wb') as files:
            minirt = os.path.join(source, 'minirt')
            for root, dirnames, filenames in os.walk(os.path.join(source, 'minirt')):
                root = root.replace(minirt, '.')
                files.write(root + '\n')
                for file in filenames:
                    files.write(os.path.join(root, file) + '\n')
    
    @progress
    def cleanup(progress):
        for path in ['knoppix.iso', 'minirt.files']:
            path = os.path.join(source, path)
            if os.path.exists(path):
                os.remove(path)
                    
    yield 'prepare', prepare()
    if filesystem:
        yield 'filesystem_image', commands.mkisofs('-R', '-U', '-V', 'KNOPPIX.net filesystem', '-publisher', 'KNOPPIX', '-hide-rr-moved', '-cache-inodes', '-no-bak', '-pad', '-o', os.path.join(source, 'knoppix.iso'), os.path.join(source, 'knoppix'))
        yield 'filesystem_compress', cloop.create_compressed_fs(os.path.join(source, 'knoppix.iso'), os.path.join(source, 'master', 'KNOPPIX', 'KNOPPIX'))
    if minirt:
        yield 'minirt_files', minirt_files()
        yield 'minirt_image', commands.cpio('-oH' 'newc', stdin=open(os.path.join(source, 'minirt.files')), stdout=open(os.path.join(source, 'master', 'boot', 'isolinux', 'minirt'), 'wb'), cwd=os.path.join(source, 'minirt'))
        yield 'minirt_compress', commands.gzip(os.path.join(source, 'master', 'boot', 'isolinux', 'minirt'))
    yield 'iso_image', commands.mkisofs('-pad', '-l', '-r', '-J', '-v', '-V', 'KNOPPIX', '-no-emul-boot', '-boot-load-size', '4', '-boot-info-table', '-b', 'boot/isolinux/isolinux.bin', '-c', 'boot/isolinux/boot.cat', '-hide-rr-moved', '-o', target, os.path.join(source, 'master'))
    yield 'cleanup', cleanup()
예제 #2
0
def pack(script, source, target):
    yield 'pack', commands.mkisofs('-pad', '-l', '-r', '-J', '-v', '-V', 'KNOPPIX', '-no-emul-boot', '-boot-load-size', '4', '-boot-info-table', '-b', 'boot/isolinux/isolinux.bin', '-c', 'boot/isolinux/boot.cat', '-hide-rr-moved', '-o', target, source)
예제 #3
0
def build(script, source, target=None):
    filesystem = os.path.exists(os.path.join(source, 'knoppix'))
    minirt = os.path.exists(os.path.join(source, 'minirt'))

    if target is None:
        target = os.path.join(source, 'remaster.iso')

    @progress
    def prepare(progress):
        remove = [('remaster.iso', )]
        if filesystem:
            remove.append(('master', 'KNOPPIX', 'KNOPPIX'))
        if minirt:
            remove.append(('master', 'boot', 'isolinux', 'minirt.gz'))
            remove.append(('master', 'boot', 'isolinux', 'minirt'))
        for path in remove:
            path = os.path.join(source, *path)
            if os.path.exists(path):
                os.remove(path)

    @progress
    def minirt_files(progress):
        with open(os.path.join(source, 'minirt.files'), 'wb') as files:
            minirt = os.path.join(source, 'minirt')
            for root, dirnames, filenames in os.walk(
                    os.path.join(source, 'minirt')):
                root = root.replace(minirt, '.')
                files.write(root + '\n')
                for file in filenames:
                    files.write(os.path.join(root, file) + '\n')

    @progress
    def cleanup(progress):
        for path in ['knoppix.iso', 'minirt.files']:
            path = os.path.join(source, path)
            if os.path.exists(path):
                os.remove(path)

    yield 'prepare', prepare()
    if filesystem:
        yield 'filesystem_image', commands.mkisofs(
            '-R', '-U', '-V', 'KNOPPIX.net filesystem', '-publisher',
            'KNOPPIX', '-hide-rr-moved', '-cache-inodes', '-no-bak', '-pad',
            '-o', os.path.join(source, 'knoppix.iso'),
            os.path.join(source, 'knoppix'))
        yield 'filesystem_compress', cloop.create_compressed_fs(
            os.path.join(source, 'knoppix.iso'),
            os.path.join(source, 'master', 'KNOPPIX', 'KNOPPIX'))
    if minirt:
        yield 'minirt_files', minirt_files()
        yield 'minirt_image', commands.cpio(
            '-oH'
            'newc',
            stdin=open(os.path.join(source, 'minirt.files')),
            stdout=open(
                os.path.join(source, 'master', 'boot', 'isolinux', 'minirt'),
                'wb'),
            cwd=os.path.join(source, 'minirt'))
        yield 'minirt_compress', commands.gzip(
            os.path.join(source, 'master', 'boot', 'isolinux', 'minirt'))
    yield 'iso_image', commands.mkisofs(
        '-pad', '-l', '-r', '-J', '-v', '-V', 'KNOPPIX', '-no-emul-boot',
        '-boot-load-size', '4', '-boot-info-table', '-b',
        'boot/isolinux/isolinux.bin', '-c', 'boot/isolinux/boot.cat',
        '-hide-rr-moved', '-o', target, os.path.join(source, 'master'))
    yield 'cleanup', cleanup()