software-mariodiana
4/19/2016 - 5:49 PM

Simple shell script written in Python to create an sbt directory structure.

Simple shell script written in Python to create an sbt directory structure.

#! /usr/bin/python

import os
import os.path
import re
import sys

from subprocess import Popen, PIPE


# Compose all data.

project = "MyProject" if len(sys.argv) < 2 else sys.argv[1]

p = Popen(['scala', '-version'], stdin=PIPE, stdout=PIPE, stderr=PIPE)
message = p.communicate()[1]

pattern = r'.+?(\d{1,}\.\d{1,}\.\d{1,}).+'
version = re.findall(pattern, message)[0]

info = { 'project': project, 'version': version }

# Create directory structure.

os.mkdir(project)

src = os.path.join(project, 'src')
main = os.path.join(src, 'main')
test = os.path.join(src, 'test')

os.mkdir(src)
os.mkdir(main)
os.mkdir(test)

folders = ['java', 'resources', 'scala']

for path in [os.path.join(main, folder) for folder in folders]:
    os.mkdir(path)

for path in [os.path.join(test, folder) for folder in folders]:
    os.mkdir(path)

# Add build.sbt file.

buildInfo = """\
name := "%(project)s"

version := "0.0.1-SNAPSHOT"

scalaVersion := "%(version)s"

""" % (info)

with open(os.path.join(project, 'build.sbt'), 'w') as f:
    f.write(buildInfo)