From 89c58dc04c264c5778ae34d1428e12483f3ac5ac Mon Sep 17 00:00:00 2001 From: Tomas Bzatek Date: Thu, 26 Feb 2009 22:50:39 +0100 Subject: Autotoolize --- setup.c | 266 ---------------------------------------------------------------- 1 file changed, 266 deletions(-) delete mode 100644 setup.c (limited to 'setup.c') diff --git a/setup.c b/setup.c deleted file mode 100644 index d9b9464..0000000 --- a/setup.c +++ /dev/null @@ -1,266 +0,0 @@ -/* Cataract - Static web photo gallery generator - * Copyright (C) 2008 Tomas Bzatek - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include "config.h" -#include "gallery-utils.h" -#include "setup.h" -#include "xml-parser.h" - - - -/* - * find_setup_xml: try to find setup.xml in standard paths - */ -gboolean -find_setup_xml (TGallerySetup *setup) -{ - #define BUFFER_SIZE 65536 - - char *pth; - char *cwd; - gboolean b; - - cwd = malloc (BUFFER_SIZE); - cwd = getcwd (cwd, BUFFER_SIZE); - pth = g_strconcat (cwd, "/", SETUP_XML, NULL); - free (cwd); - - b = parse_setup_xml (pth, setup); - g_free (pth); - if (b) return TRUE; - - pth = g_strconcat (getenv ("HOME"), "/.cgg/", SETUP_XML, NULL); - b = parse_setup_xml (pth, setup); - g_free (pth); - if (b) return TRUE; - - pth = g_strconcat("/usr/share/cgg/", SETUP_XML, NULL); - b = parse_setup_xml (pth, setup); - g_free (pth); - if (b) return TRUE; - - pth = g_strconcat("/usr/local/share/cgg/", SETUP_XML, NULL); - b = parse_setup_xml (pth, setup); - g_free (pth); - return b; -} - - -/* - * parse_setup_xml: XML parser for setup.xml file - */ -gboolean -parse_setup_xml (const char *filename, TGallerySetup *setup) -{ - TXMLFile *xml; - char *s; - - xml = xml_parser_load (filename); - if (xml == NULL) - return FALSE; - - /* initialize data struct */ - if (setup == NULL) - return FALSE; - memset (setup, 0, sizeof (TGallerySetup)); - setup->setup_xml_path = strdup (filename); - - setup->templates_path = xml_file_get_node_value (xml, "/gallery_setup/templates/path/text()"); - setup->template_index = xml_file_get_node_value (xml, "/gallery_setup/templates/index/text()"); - setup->template_album = xml_file_get_node_value (xml, "/gallery_setup/templates/album/text()"); - setup->template_photo = xml_file_get_node_value (xml, "/gallery_setup/templates/photo/text()"); - setup->styles = xml_file_get_node_value (xml, "/gallery_setup/templates/styles/text()"); - setup->scripts = xml_file_get_node_value (xml, "/gallery_setup/templates/scripts/text()"); - setup->thumbnail_landscape_width = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "landscape_w", 0); - setup->thumbnail_landscape_height = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "landscape_h", 0); - setup->thumbnail_portrait_width = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "portrait_w", 0); - setup->thumbnail_portrait_height = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "portrait_h", 0); - setup->thumbnail_quality = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/thumbnail", "quality", -1); - setup->preview_landscape_width = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/preview", "landscape_w", 0); - setup->preview_landscape_height = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/preview", "landscape_h", 0); - setup->preview_portrait_width = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/preview", "portrait_w", 0); - setup->preview_portrait_height = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/preview", "portrait_h", 0); - setup->preview_quality = xml_file_get_node_attribute_long (xml, "/gallery_setup/images/preview", "quality", -1); - setup->footer = xml_file_get_node_value (xml, "/gallery_setup/footer/text()"); - setup->border_style = xml_file_get_node_attribute (xml, "/gallery_setup/images/border", "style"); - setup->meta_author = xml_file_get_node_value (xml, "/gallery_setup/meta/author/text()"); - setup->meta_description = xml_file_get_node_value (xml, "/gallery_setup/meta/description/text()"); - setup->meta_keywords = xml_file_get_node_value (xml, "/gallery_setup/meta/keywords/text()"); - - s = xml_file_get_node_attribute (xml, "/gallery_setup/images/preload", "value"); - setup->preload = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); - s = xml_file_get_node_attribute (xml, "/gallery_setup/images/use_iptc_exif", "value"); - setup->use_iptc_exif = s ? strcasecmp (s, "yes") == 0 : FALSE; /* default to FALSE */ - if (s) g_free (s); - s = xml_file_get_node_attribute (xml, "/gallery_setup/images/erase_embed_thumbnail", "value"); - setup->erase_exif_thumbnail = s ? strcasecmp (s, "yes") == 0 : FALSE; /* default to FALSE */ - if (s) g_free (s); - s = xml_file_get_node_attribute (xml, "/gallery_setup/meta/use_title_as_meta", "value"); - setup->use_title_as_meta = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); - - setup->site_title = xml_file_get_node_attribute (xml, "/gallery_setup/meta/site", "title"); - setup->add_copyright = xml_file_get_node_value (xml, "/gallery_setup/meta/add_copyright/text()"); - s = xml_file_get_node_attribute (xml, "/gallery_setup/navigation/use_inpage_links", "value"); - setup->use_inpage_links = s ? strcasecmp (s, "yes") == 0 : TRUE; /* default to TRUE */ - if (s) g_free (s); - - setup->nofullsize = xml_file_get_node_present (xml, "/gallery_setup/images/nofullsize"); - - xml_parser_close (xml); - - #ifdef __DEBUG_ALL__ - printf("setup: templates_path = '%s'\n", setup->templates_path); - printf("setup: template_index = '%s'\n", setup->template_index); - printf("setup: template_album = '%s'\n", setup->template_album); - printf("setup: template_photo = '%s'\n", setup->template_photo); - printf("setup: styles = '%s'\n", setup->styles); - printf("setup: scripts = '%s'\n", setup->scripts); - printf("setup: thumbnail_quality = %d\n", setup->thumbnail_quality); - printf("setup: thumbnail_landscape_width = %ld\n", setup->thumbnail_landscape_width); - printf("setup: thumbnail_landscape_height = %ld\n", setup->thumbnail_landscape_height); - printf("setup: thumbnail_portrait_width = %ld\n", setup->thumbnail_portrait_width); - printf("setup: thumbnail_portrait_height = %ld\n", setup->thumbnail_portrait_height); - printf("setup: preview_quality = %d\n", setup->preview_quality); - printf("setup: preview_landscape_width = %ld\n", setup->preview_landscape_width); - printf("setup: preview_landscape_height = %ld\n", setup->preview_landscape_height); - printf("setup: preview_portrait_width = %ld\n", setup->preview_portrait_width); - printf("setup: preview_portrait_height = %ld\n", setup->preview_portrait_height); - printf("setup: footer = '%s'\n", setup->footer); - printf("setup: border_style = '%s'\n", setup->border_style); - printf("setup: meta_author = '%s'\n", setup->meta_author); - printf("setup: meta_description = '%s'\n", setup->meta_description); - printf("setup: meta_keywords = '%s'\n", setup->meta_keywords); - printf("setup: preload = %d\n", setup->preload); - printf("setup: use_iptc_exif = %d\n", setup->use_iptc_exif); - printf("setup: erase_exif_thumbnail = %d\n", setup->erase_exif_thumbnail); - #endif - - return TRUE; -} - - - -int -test_tmpl_access (const char *dir, const char *path) -{ - char *s; - int b; - - s = g_strconcat (dir, "/", path, NULL); - b = access (s, R_OK); - g_free (s); - return b; -} - -int -test_tmpl_files (const char *dir, TGallerySetup *setup) -{ - return test_tmpl_access (dir, setup->template_album) | test_tmpl_access (dir, setup->template_photo) | - test_tmpl_access (dir, setup->template_index) | test_tmpl_access (dir, setup->styles) | - test_tmpl_access (dir, setup->scripts); -} - -/* - * find_templates_directory: absolute/relative path checks, trying to find templates directory - * - returned string should be freed - */ -char * -find_templates_directory (TGallerySetup *setup) -{ - char *base_dir; - char *pth; - - if (IS_DIR_SEP (*setup->templates_path)) - { - #ifdef __DEBUG_ALL__ - printf("Warning: using absolute paths to templates\n"); - #endif - - if (! test_tmpl_files (setup->templates_path, setup)) - return strdup (setup->templates_path); - } - else - { - base_dir = g_path_get_dirname (setup->setup_xml_path); - pth = g_strconcat (base_dir, "/", setup->templates_path, NULL); - g_free (base_dir); - - #ifdef __DEBUG_ALL__ - printf("Warning: using relative paths to templates\n"); - #endif - - if (! test_tmpl_files (pth, setup)) - return pth; - } - - fprintf (stderr, "Couldn't find proper templates directory (tried '%s')\n", setup->templates_path); - return NULL; -} - - -/* - * free_setup_data: free allocated setup data - */ -void -free_setup_data (TGallerySetup *setup) -{ - if (setup) { - if (setup->real_templates_dir) - free (setup->real_templates_dir); - if (setup->setup_xml_path) - free (setup->setup_xml_path); - if (setup->templates_path) - free (setup->templates_path); - if (setup->template_index) - free (setup->template_index); - if (setup->template_album) - free (setup->template_album); - if (setup->template_photo) - free (setup->template_photo); - if (setup->styles) - free (setup->styles); - if (setup->scripts) - free (setup->scripts); - if (setup->footer) - free (setup->footer); - if (setup->meta_author) - free (setup->meta_author); - if (setup->border_style) - free (setup->border_style); - if (setup->site_title) - free (setup->site_title); - if (setup->add_copyright) - free (setup->add_copyright); - free (setup); - setup = NULL; - } -} -- cgit v1.2.3