From e2b5b121383f4978c2102cc2a5a7af363b54dc1e Mon Sep 17 00:00:00 2001 From: OffrayLuna Date: Thu, 6 Oct 2016 20:27:32 +0000 Subject: [PATCH] Merging changes from 226 and improving detection of hashes for last version of files. Should the warning be more visible? --- src/Grafoscopio/ExternalApp.class.st | 16 +++++------ src/Grafoscopio/FossilRepo.class.st | 42 ++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 8 deletions(-) create mode 100644 src/Grafoscopio/FossilRepo.class.st diff --git a/src/Grafoscopio/ExternalApp.class.st b/src/Grafoscopio/ExternalApp.class.st index 6c376af..0586574 100644 --- a/src/Grafoscopio/ExternalApp.class.st +++ b/src/Grafoscopio/ExternalApp.class.st @@ -17,6 +17,14 @@ Class { #category : #'Grafoscopio-Model' } +{ #category : #installation } +ExternalApp class >> compareHashFor: aFileName with: aSHAString [ + + aSHAString = (SHA1 new hashMessage: aFileName asFileReference binaryReadStream contents) hex + ifFalse: [ ^ false ] + ifTrue: [ ^ true ]. +] + { #category : #configuration } ExternalApp class >> configureFossil [ "Stablish where is located pandoc according to the operative system and/or the input of the user" @@ -41,14 +49,6 @@ ExternalApp class >> configurePandoc [ ] -{ #category : #installation } -ExternalApp class >> file: aFileName hasHash: aSHAString [ - - aSHAString = (SHA1 new hashMessage: aFileName asFileReference binaryReadStream contents) hex - ifFalse: [ ^ false ] - ifTrue: [ ^ true ]. -] - { #category : #installation } ExternalApp class >> installSQLite32Bits [ "I dowload the SQLite binary for the hosting platform, uncompress it and made it available as with the name diff --git a/src/Grafoscopio/FossilRepo.class.st b/src/Grafoscopio/FossilRepo.class.st new file mode 100644 index 0000000..9369fdd --- /dev/null +++ b/src/Grafoscopio/FossilRepo.class.st @@ -0,0 +1,42 @@ +" +I model a fossil repository. For details about fossil see: + +http://fossil-scm.org/ +" +Class { + #name : #FossilRepo, + #superclass : #Object, + #instVars : [ + 'url' + ], + #category : #'Grafoscopio-Model' +} + +{ #category : #'as yet unclassified' } +FossilRepo >> jsonDataFor: aFileName [ + ^ NeoJSONReader fromString: (self jsonStringFor: aFileName) +] + +{ #category : #'as yet unclassified' } +FossilRepo >> jsonStringFor: aFileName [ + | queryForJSONData | + queryForJSONData := self url addPathSegments: #('json' 'finfo'). + queryForJSONData queryAt: 'name' put: aFileName. + ^ (ZnEasy get: queryForJSONData) contents. +] + +{ #category : #'as yet unclassified' } +FossilRepo >> lastHashNumberFor: aFileName [ + (self jsonDataFor: aFileName) at: 'payload' ifAbsent: [ self inform: 'Key not found, verify the file name you are looking in this repository'. ^ self ]. + ^ (((self jsonDataFor: aFileName) at: 'payload') at: 'checkins') first at: 'uuid' +] + +{ #category : #accessing } +FossilRepo >> url [ + ^ url +] + +{ #category : #accessing } +FossilRepo >> url: aString [ + url := aString asUrl +]