I'm a freelance typographer. (It's not the problem, it's a fact.) Not a coder. (Well, it may be a problem.) (OK, I'm originally a math teacher. But who cares. Anyway.) Back in the old days, when I used to start my projects with creating a single folder in my ”Works_for_clients” (or ”ZZZ_Works_for_clients_who_won't_pay”) parent folder, everything was shiny, happy, and my hard drive was almost free of any libraries, templates, used or any downloaded assets: I started my tasks from scratch. As you may think, and as I have realized it after a few months, it was a total time wasting. Soon I started to reuse some snippets of codes here, fonts there (graphics everywhere), and right after that I found myself in a situation when I required a whole (or more) hours to the following ritual:
- Let's create a folder.
- Let's create a folder structure inside that folder.
- Oh, wait, this task is similar to that one I worked on a year ago, OK, let's copy that structure.
- But I'll need those other fonts in that other project I worked on two years ago.
- OK, now I'm in the middle of the project, goddamn, I have forgotten to copy the icons that were in that other project three years ago.
...and so on. Should I continue? I'm pretty sure, that the definition of programming of Neumann, Knuth, Turing or another greatness of the computer technology somewhere contains the word ”automatism” and does not contain the phrase ”getting into the lunatic asylum”.
But I may be wrong.
So I've decided to shorten this process a bit. I started to write a code that automates (Hah! Or maybe Babbage?) this ”do this and do that and prepare my whole workspace while I make a coffee for myself” thing.My solution
The attached Python script is in a very early phase (which means I've written it for myself, no documentation, no screenshots, only comments in the code) but tries to make my regular and frequent project creating tasks easier. Since I'm an amateur Python-coder (no OOP, shame on me, I'm a typographer, not a coder) it has no GUI, it's just a simple ”program” that runs a frequent task based on given parameters and filters. If you wish you can test it, I'll provide help if you need it. (You'll need to replace some constants in the main create-project\create-project-1.5.py script.)What I need
There are some drawbacks of my solution. For example it has no GUI. If I'm the only one who uses (or hacks) it then it's OK, but I may want to pass it away. Or I may want to concentrate on other tasks (hell, did I say, I'm a typographer, not a coder?), and want to forget all the things regarding line #225 where I need to set this and lines between #549 and #583 where I need to set that.
I definitely do not want to
reinvent the wheel. If there's an app on the market already that fulfills the points below, then I'd be a happy, moreover a hysterically happy person (like a child in the kindergarten who just got his pancakes). All I need is an application/script that
If there aren't any apps for this task, what should I do?
- creates (a) project folder(s) based on (a) given name(s)
- creates a folder structure based on a given template in that/those folder(s)
- creates text files on-the-fly based on given templates (i.e. fills them with predefined content)
- copies files commonly used in projects (e.g. swatches, fonts, etc.)
- renames and/or modifies the contents of these files according to the project
- creates links on predefined places (e.g. Desktop, a ”Shortcut Repository” like my f:\Shortcuts folder, Start Menu, etc.)
- creates a logfile that stores basic project info (when the project was created, client name, what shortcuts have been created, etc.)
- the user is able to create/modify/delete folder structure templates, template files, etc.
- Extend/enhance my script with more features and a GUI?
- Rewrite the whole mess in Autohotkey?
- Or in C/C++/C#? (Er... have I mentioned yet, I'm a typographer, not a coder? I think I did...)
- Ask someone to write this app for me? (You cannot imagine how underpaid typographers are nowadays in Eastern Europe, and my cat need her food too.)
- Go hell with my stupid problems and continue designing books and CD covers?
Thanks for the attention. Sorry for the long post.