Next: , Up: Run Create and Update   [Index]


B.1.3.1 Run Create

This shell script is installed into $DEV/bin and is run by typing the shell command ‘new-org-template <...ARGS>’ from the command-line to set up a new Org project at a particular point in your directory structure. The main code is elisp, described above in Create New Project.

After a new project is installed into the directory structure, a git repo is established, as well as a new GitHub repo, and the initial commit is pushed up.

 1  # new-org-template
 2  # $1 := project
 3  # $2 := title
 4  # $3 := author
 5  # [$4 := bucket] (default := ${AWS_S3_BUCKET})
 6  
 7  USAGE="$0 <project> <title> <author> [<bucket>]\n"
 8  [[ -z $AWS_S3_BUCKET ]] && {
 9      # printf goes to standard out by default; redirect this error message to standard error
10      printf "${RED}ERROR: ${YELLOW}The environment variable ${GREEN}\$AWS_S3_BUCKET${YELLOW} needs to be set.${CLEAR}\n" >&2
11      exit 1
12  }
13  
14  if [[ $1 =~ ^-(h|-?help)$ || ( $# < 3 || $# > 4 ) ]]; then
15      printf "USAGE:\n$USAGE"
16      exit 0;
17  fi
18  
19  # verify command-line args contain only letters, digits, underscores, dashes and spaces
20  RE="^[_a-zA-Z][_a-zA-Z0-9 -.]+$"
21  for arg in "$@"; do
22      printf "$arg..."
23      [[ $arg =~ $RE ]] || { printf ": ERROR\n"; exit 1; }
24      printf "ok\n"
25  done
26  
27  # bucket is optional;
28  # if it is supplied, make sure it has a suffix, e.g. '.com' or '.org'
29  # if not, add '.com' as the default;
30  # let this be known on standard error
31  bucket=${4:-${AWS_S3_BUCKET}}
32  [[ ${bucket} == ${bucket%.*} ]] && {
33     bucket=${bucket}.com
34     # printf goes to standard out by default; redirect this error message to standard error
35     printf "${YELLOW}The bucket name has had the suffix ${BLUE}.com${YELLOW} added: ${PURPLE}${bucket}${CLEAR}" >&2
36  }
37  
38  ${EDITOR} --eval "(progn
39                        (load-file \"/usr/local/dev/bin/org-template.el\")
40                        (create-new-project \"$1\" \"$2\" \"$3\" \"$bucket\"))"
41  
42  # create a new Git repo and GitHub repo
43  cd "$1"
44  rm *~
45  git init
46  git add -A
47  git commit -m "Initial commit"
48  git log | cat
49  git remote add origin git@github.com:wlharvey4/"$1".git
50  
51  curl -i -H "Authorization: token ${GITHUB_TOKEN}" \
52       -d "{\"name\":\"$1\",\"description\":\"$2: v0.0.0/\"}" \
53       https://api.github.com/user/repos
54  
55  git push origin master
56  
57  cd ..
58  tree -a -L 1 "$1"

Next: , Up: Run Create and Update   [Index]