This will let rewritemeta report format issues without writing to disk.
if commitmsg:
metadatapath = os.path.join('metadata', app['id'] + '.txt')
- metadata.write_metadata(metadatapath, app)
+ with open(metadatapath, 'w') as f:
+ metadata.write_metadata(f, app)
if options.commit:
logging.info("Commiting update for " + metadatapath)
gitcmd = ["git", "commit", "-m", commitmsg]
f.write(app['Repo Type'] + ' ' + app['Repo'])
metadatapath = os.path.join('metadata', package + '.txt')
- metadata.write_metadata(metadatapath, app)
+ with open(metadatapath, 'w') as f:
+ metadata.write_metadata(f, app)
logging.info("Wrote " + metadatapath)
# Write a metadata file.
#
-# 'dest' - The path to the output file
+# 'mf' - Writer interface (file, StringIO, ...)
# 'app' - The app data
-def write_metadata(dest, app):
+def write_metadata(mf, app):
def writecomments(key):
written = 0
if value:
writefield(field, value)
- mf = open(dest, 'w')
writefield_nonempty('Disabled')
if app['AntiFeatures']:
writefield('AntiFeatures')
writefield('No Source Since')
mf.write('\n')
writecomments(None)
- mf.close()
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import os
from argparse import ArgumentParser
import logging
import common
for appid, app in apps.iteritems():
metadatapath = app['metadatapath']
- ext = os.path.splitext(metadatapath)[1][1:]
- if ext == 'txt':
- logging.debug("Rewriting " + metadatapath)
- metadata.write_metadata(metadatapath, app)
- else:
+ ext = common.get_extension(metadatapath)
+ if ext not in ['txt']:
logging.info("Ignoring %s file at '%s'"
% (ext.upper(), metadatapath))
+ continue
+ logging.debug("Rewriting " + metadatapath)
+ with open(metadatapath, 'w') as f:
+ metadata.write_metadata(f, app)
logging.debug("Finished.")