diff --git a/crunch b/crunch
index 1a40a48..629d751 100755
--- a/crunch
+++ b/crunch
@@ -50,34 +50,45 @@ if argparse_available:
parser.add_argument('--clean', dest='clean', action='store_true',
help='Empties the build folder.')
parser.add_argument('--dependencies', dest='dependencies', action='store_true',
- help='Builds all the dependencies, ignored unless used with --single, --new, or --email.')
+ help='Builds all the dependencies, ignored unless used with \
+ --single, --new, or --email.')
parser.add_argument('--email', dest='email', action='store_true',
- help='Reads an email message from STDIN and parses to create a new post. Overrides --all, --posts, --indexes, --home, and --single')
+ help='Reads an email message from STDIN and parses to create a new \
+ post. Overrides --all, --posts, --indexes, --home, and --single')
parser.add_argument('--error', dest='error', action='store_true',
help='Generates static error pages.')
parser.add_argument('--feed', dest='feed', action='store_true',
help='Generates RSS feed.')
+ parser.add_argument('--galleries', dest='galleries', action='store_true',
+ help='Generates galleries.')
parser.add_argument('--home', dest='home', action='store_true',
help='Builds the home page.')
parser.add_argument('--indexes', dest='indexes', action='store_true',
help='Builds the index pages.')
parser.add_argument('--new', dest='new', action='store_true',
- help='Starts an interactive sesson to create a new post. *Not yet implemented*')
+ help='Starts an interactive sesson to create a new post. *Not yet \
+ implemented*')
parser.add_argument('--no-http', dest='http', action='store_false',
- help='Prevents crunch from contacting external sources during the build.')
+ help='Prevents crunch from contacting external sources during the \
+ build.')
parser.add_argument('--posts', dest='posts', action='store_true',
help='Builds all posts.')
parser.add_argument('--serve', dest='serve', action='store_true',
- help='Starts a lightweight HTTP server to serve build folder to localhost.')
+ help='Starts a lightweight HTTP server to serve build folder to \
+ localhost.')
parser.add_argument('--setup', dest='setup', action='store_true',
- help='Creates a basic blog framework to start with. *Not yet implemented.*')
+ help='Creates a basic blog framework to start with. *Not yet \
+ implemented.*')
parser.add_argument('--single', dest='single',
- help='Builds a single post. Takes a filename as an argument or use - to read from STDIN. Overrides --all, --posts, --indexes, --home *Not yet implemented.*')
+ help='Builds a single post. Takes a filename as an argument or use \
+ - to read from STDIN. Overrides --all, --posts, --indexes, --home \
+ *Not yet implemented.*')
parser.add_argument('--verbose', dest='verbose', action='store_true',
help='Enables information display other than errors.')
args = parser.parse_args()
else:
- print 'ERROR: The python module argparse is unavailable. Please install argparse and try again.'
+ print 'ERROR: The python module argparse is unavailable. Please install argparse and \
+ try again.'
sys.exit(1)
##########################################################################################
@@ -298,7 +309,8 @@ def format_error(code):
Unfortunately, you've found one of those elusive error %(code)s pages.
-
However you ended up here, I'm going to guess this isn't where you wanted to be.
+
However you ended up here, I'm going to guess this isn't where you wanted to
+ be.
Perhaps you were looking for the home page?
""" % {'code': code}
@@ -315,8 +327,8 @@ def format_xml(page):
- """ % {'title': page.title, 'description': page.description, 'base_url': page.base_url,
- 'yield': page.body}
+ """ % {'title': page.title, 'description': page.description,
+ 'base_url': page.base_url, 'yield': page.body}
def format_xml_item(post):
return """
@@ -404,7 +416,7 @@ def ensure_build_folder():
else:
shutil.copytree(public_folder, build_folder)
shutil.copytree(images_folder, build_folder + '/' + conf['images_folder'])
- shutil.copytree(galleries_folder, build_folder + '/' + conf['galleries_folder'])
+ os.mkdir(build_folder + '/' + conf['galleries_folder'])
return 2
return 1
@@ -629,7 +641,8 @@ def crunch_email(message):
# Making empty body to put stuff in.
body = ''
- # Walk through the message parts to find any plain/text body elements or image attachments.
+ # Walk through the message parts to find any plain/text body elements or
+ # image attachments.
if args.verbose: print 'Running through the message parts.'
for part in message.walk():
type = part.get_content_type()
@@ -639,7 +652,8 @@ def crunch_email(message):
if type == 'text/plain':
body = part.get_payload()
- # If the content/type starts with 'image' process the image and add it to the top of the body.
+ # If the content/type starts with 'image' process the image and add it to the top
+ # of the body.
elif re.match('image', type, re.I):
if args.verbose: print 'Found an image.'
@@ -717,13 +731,16 @@ def crunch_email(message):
resized.save(build_folder + '/images/posts/' + id + '_z.jpg')
os.chmod(build_folder + '/images/posts/' + id + '_z.jpg', 0644)
- # Generate an image tag string based on whether we had to resize the image or not.
+ # Generate an image tag string based on whether we had to resize the
+ # image or not.
if resized:
img_tag = '
\n\n'
+ '.jpg">
\n\n'
else:
img_tag = '
\n\n'
+ '.jpg">
\n\n'
# Add the image tag to the top of the body.
body = img_tag + body
@@ -735,7 +752,7 @@ def crunch_email(message):
if args.http:
if args.verbose: print 'Getting short url.'
short = urllib2.urlopen('http://amd.im/api-create/' + conf['base_url'] + \
- time.strftime('%Y', email_date) + '/' + time.strftime('%Y', \
+ time.strftime('%Y', email_date) + '/' + time.strftime('%Y',\
email_date) + '/' + slug).read().lstrip('http://amd.im/')
else:
if args.verbose: print 'WARN: HTTP calls disabled, short url unavailable.'
@@ -761,8 +778,9 @@ def crunch_email(message):
return filename
-# crunch_single() generates a new post file from an inputted string and returns the post object.
-# is used for both generating from a post file, from stdin, or from a parsed email.
+# crunch_single() generates a new post file from an inputted string and returns the post
+# object. crunch_single() is used for both generating from a post file, from stdin, or
+# from a parsed email.
def crunch_single(string):
# Create a new Post object for this new post.
post = Post()
@@ -799,7 +817,8 @@ def crunch_single(string):
if args.dependencies:
# Let's rebuild the index pages for this post's year and month.
- if args.verbose: print 'Rebuilding indexes for ' + post.year() + '/' + post.month() + ':'
+ if args.verbose: print 'Rebuilding indexes for ' + post.year() + '/' + \
+ post.month() + ':'
# Make the year folder if it doesn't exist. (First post of a new year.)
year_path = build_folder + '/' + post.year()
@@ -848,7 +867,7 @@ def crunch_single(string):
# Create a new page for the month.
month_page = Page()
- month_page.title = 'Posts from ' + str(post.year()) + '/' + str(post.month()) + ' | ' \
+ month_page.title = 'Posts from ' + str(post.year()) + '/' + str(post.month()) + ' | '\
+ month_page.title
month_body = ""
@@ -1056,7 +1075,8 @@ if args.serve:
if conf['server_redirect_htm']:
if re.match('/\d\d\d\d\/\d\d\/\w', self.path):
self.path = self.path + '.htm'
-
+ if args.verbose: print 'redirecting to ' + self.path
+
return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
# Use the handler class and setup a SocketServer instance.