/*
 * kakumei-invite.c
 *
 * generate invitations for kakumei.
 *
 * Author: Dario Rodriguez dario@softhome.net
 * This program is licensed under the terms of the Affero GPL v1+
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>

#define INVITATIONUSER "invitation"
#define INVITESDIR "data/invitations"

int
main(int argc, char *argv[])
{
        int numinvites;
        FILE *invite,*f;
        int i;
        char *name,*ptr;
        if(argc<3 || (numinvites=atoi(argv[1]))<1 || (f=fopen(argv[2],"a"))==NULL) {
                printf("Syntax: %s numinvites invitedoc.txt\n",argv[0]);
                return(1);
        }
        mkdir("data",0770);
        mkdir(INVITESDIR,0700);
        setenv("TMPDIR",INVITESDIR,1);
        for(i=0;i<numinvites;i++) {
                name=tempnam(INVITESDIR,"ka");
                if((ptr=strrchr(name,'/'))!=NULL)
                        ptr++;
                else
                        ptr=name;
                if((invite=fopen(name,"w"))==NULL) {
                        printf("ERROR: Couldn't generate invitation number %i, exiting\n",i+1);
                        free(name),name=NULL;
                        fclose(f),f=NULL;
                        return(1);
                }
                printf("%s\n",ptr);
                fprintf(invite,"%s\n",ptr);
                fprintf(f,"Invitation number %i:\n\n\tUser: %s\n\tPass: %s\n\n",i+1,INVITATIONUSER,ptr);
                fclose(invite),invite=NULL;
                free(name),name=NULL;
        }
        fclose(f),f=NULL;
        printf("%i invitations generated in file %s\n",i,argv[2]);
        return(0);
}