Add simpleid-1.0.5
diff --git a/simpleid/RoboFile.php b/simpleid/RoboFile.php
new file mode 100644
index 0000000..df63fab
--- /dev/null
+++ b/simpleid/RoboFile.php
@@ -0,0 +1,115 @@
+<?php
+
+use Gettext\Scanner\PhpScanner;
+use Gettext\Generator\PoGenerator;
+use Gettext\Translations;
+use Symfony\Component\Finder\Finder;
+
+/**
+ * This is project's console commands configuration for Robo task runner.
+ *
+ * @see http://robo.li/
+ */
+class RoboFile extends \Robo\Tasks {
+ public function xgettext() {
+ $domain = 'messages';
+
+ $finder = new Finder();
+ $finder->in('www')->name('*.php');
+
+ $translations[] = Translations::create($domain);
+
+ $scanner = new PhpScanner(...$translations);
+ $scanner->setDefaultDomain($domain);
+
+ $scanner->setFunctions(['t' => 'gettext']);
+
+ foreach ($finder as $file) {
+ $scanner->scanFile($file);
+ }
+
+ $generator = new PoGenerator();
+
+ foreach ($scanner->getTranslations() as $domain => $translations) {
+ $destFile = 'www/locale/messages.pot';
+
+ $translations->getHeaders()->set('Project-Id-Version', 'PACKAGE VERSION');
+ $translations->getHeaders()->set('Report-Msgid-Bugs-To', '');
+ $translations->getHeaders()->set('POT-Creation-Date', date('c'));
+ $translations->getHeaders()->set('PO-Revision-Date', 'YEAR-MO-DA HO:MI+ZONE');
+ $translations->getHeaders()->set('Last-Translator', 'FULL NAME <EMAIL@ADDRESS>');
+ $translations->getHeaders()->set('Language-Team', 'LANGUAGE <LL@li.org>');
+ $translations->getHeaders()->set('MIME-Version', '1.0');
+ $translations->getHeaders()->set('Content-Type', 'text/plain; charset=UTF-8');
+ $translations->getHeaders()->set('Content-Transfer-Encoding', '8bit');
+
+ $generator->generateFile($translations, $destFile);
+ }
+ }
+
+ public function build() {
+ $ref = getenv('GITHUB_REF_NAME');
+ if ($ref === false) {
+ $version = 'master';
+ } else {
+ $version = str_replace('release-', '', $ref);
+ }
+
+ $dist_file = 'simpleid-' . $version . '.tar.gz';
+
+ // 1. Set up robo collections and create temp directory
+ $main_collection = $this->collectionBuilder();
+ $prepare_collection = $this->collectionBuilder();
+ $temp = $main_collection->tmpDir();
+ $working = $main_collection->workDir("dist");
+
+ // 3. Prepare step
+ // (a) Copy files to temp directory
+ $prepare_collection->taskMirrorDir([
+ '.' => "$temp/simpleid"
+ ]);
+
+ // (b) remove unnecessary directories and files
+ $prepare_collection->taskDeleteDir([
+ "$temp/simpleid/.git",
+ "$temp/simpleid/.github",
+ "$temp/simpleid/.sourceforge",
+ "$temp/simpleid/dist",
+ "$temp/simpleid/vendor",
+ "$temp/simpleid/www/vendor",
+ "$temp/simpleid/www/test",
+ "$temp/simpleid/www/test-suite"
+ ]);
+
+ $prepare_collection->taskFileSystemStack()->remove([
+ "$temp/simpleid/www/.htaccess",
+ "$temp/simpleid/www/config.inc",
+ "$temp/simpleid/www/config.php",
+ "$temp/simpleid/www/composer.lock",
+ "$temp/simpleid/composer.lock"
+ ]);
+
+ // (c) run
+ $result = $prepare_collection->run();
+ if (!$result->wasSuccessful()) {
+ return $result;
+ }
+
+ // 4. Replace variables
+ $finder = new Finder();
+ $finder->in("$temp/simpleid/www")->name('*.php')->name('*.dist');
+ foreach($finder as $file) {
+ $main_collection->taskReplaceInFile($file)
+ ->from(['@@BUILD_VERSION@@', '@@IDENTITIES_DIR@@', '@@CACHE_DIR@@', '@@STORE_DIR@@'])
+ ->to([$version, '../identities', '../cache', '../store']);
+ }
+
+ // 5. Create the release files
+ $main_collection->taskFileSystemStack()->mkdir("$working/$version")->copy('.sourceforge/frs/README.md', "$working/$version/README.md");
+ $main_collection->taskPack("$working/$version/$dist_file")->addDir('simpleid/', "$temp/simpleid");
+ $main_collection->taskWriteToFile('version.txt')->line($version);
+
+ // 6. Run everything
+ return $main_collection->run();
+ }
+}
\ No newline at end of file